tenant = Tenant::factory()->create(); $this->policy = Policy::factory()->create([ 'tenant_id' => $this->tenant->id, ]); $this->user = User::factory()->create(); }); it('displays policy version page', function () { $version = PolicyVersion::factory()->create([ 'tenant_id' => $this->tenant->id, 'policy_id' => $this->policy->id, 'version_number' => 1, ]); $this->actingAs($this->user); $response = $this->get("/admin/policy-versions/{$version->id}"); $response->assertOk(); }); it('displays assignments widget when version has assignments', function () { $version = PolicyVersion::factory()->create([ 'tenant_id' => $this->tenant->id, 'policy_id' => $this->policy->id, 'version_number' => 1, 'assignments' => [ [ 'id' => 'assignment-1', 'intent' => 'apply', 'target' => [ '@odata.type' => '#microsoft.graph.groupAssignmentTarget', 'groupId' => 'group-123', 'assignment_filter_name' => 'Targeted Devices', 'deviceAndAppManagementAssignmentFilterId' => 'filter-1', 'deviceAndAppManagementAssignmentFilterType' => 'include', ], ], [ 'id' => 'assignment-2', 'intent' => 'apply', 'target' => [ '@odata.type' => '#microsoft.graph.exclusionGroupAssignmentTarget', 'groupId' => 'group-456', 'deviceAndAppManagementAssignmentFilterId' => null, 'deviceAndAppManagementAssignmentFilterType' => 'none', ], ], ], 'scope_tags' => [ 'ids' => ['0'], 'names' => ['Default'], ], ]); $this->actingAs($this->user); $response = $this->get("/admin/policy-versions/{$version->id}"); $response->assertOk(); $response->assertSeeLivewire('policy-version-assignments-widget'); $response->assertSee('2 assignment(s)'); $response->assertSee('Include group'); $response->assertSee('Exclude group'); $response->assertSee('Filter (include): Targeted Devices'); }); it('displays empty state when version has no assignments', function () { $version = PolicyVersion::factory()->create([ 'tenant_id' => $this->tenant->id, 'policy_id' => $this->policy->id, 'version_number' => 1, 'assignments' => null, ]); $this->actingAs($this->user); $response = $this->get("/admin/policy-versions/{$version->id}"); $response->assertOk(); $response->assertSee('Assignments were not captured for this version'); });