active()->create(['name' => 'Evidence Environment A']); [$user, $environmentA] = createUserWithTenant(tenant: $environmentA, role: 'owner'); $environmentB = ManagedEnvironment::factory()->active()->create([ 'workspace_id' => (int) $environmentA->workspace_id, 'name' => 'Evidence Environment B', ]); createUserWithTenant(tenant: $environmentB, user: $user, role: 'owner'); $snapshotA = spec314EvidenceSnapshot($environmentA, EvidenceCompletenessState::Complete->value); $snapshotB = spec314EvidenceSnapshot($environmentB, EvidenceCompletenessState::Partial->value); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $environmentA->workspace_id]) ->get(route('admin.evidence.overview')) ->assertOk() ->assertSee('Select an environment to evaluate evidence readiness') ->assertDontSee(EvidenceSnapshotResource::getUrl('view', ['record' => $snapshotB], tenant: $environmentB, panel: 'admin'), false); $component = Livewire::actingAs($user)->test(EvidenceOverview::class); $payload = $component->instance()->evidenceDisclosurePayload(); expect(data_get($payload, 'decision_card.actionUrl'))->toBeNull() ->and(data_get($payload, 'primary_action'))->toBeNull() ->and(data_get($payload, 'cards.0.url'))->toBeNull() ->and(data_get($payload, 'path_items.0.url'))->toBeNull(); }); it('Spec314 Spec393 evidence overview ignores stale persisted environment filters without restoring a primary environment snapshot anchor', function (): void { $environmentA = ManagedEnvironment::factory()->active()->create(); [$user, $environmentA] = createUserWithTenant(tenant: $environmentA, role: 'owner'); $environmentB = ManagedEnvironment::factory()->active()->create([ 'workspace_id' => (int) $environmentA->workspace_id, ]); createUserWithTenant(tenant: $environmentB, user: $user, role: 'owner'); $snapshotA = spec314EvidenceSnapshot($environmentA, EvidenceCompletenessState::Complete->value); $snapshotB = spec314EvidenceSnapshot($environmentB, EvidenceCompletenessState::Partial->value); $this->actingAs($user); setAdminPanelContext(); session()->put(WorkspaceContext::SESSION_KEY, (int) $environmentA->workspace_id); $component = Livewire::actingAs($user)->test(EvidenceOverview::class); $filtersSessionKey = $component->instance()->getTableFiltersSessionKey(); session()->put($filtersSessionKey, [ 'managed_environment_id' => ['value' => (string) $environmentA->getKey()], ]); $this->get(route('admin.evidence.overview')) ->assertOk() ->assertSee('Select an environment to evaluate evidence readiness') ->assertDontSee(EvidenceSnapshotResource::getUrl('view', ['record' => $snapshotB], tenant: $environmentB, panel: 'admin'), false); $payload = Livewire::actingAs($user)->test(EvidenceOverview::class)->instance()->evidenceDisclosurePayload(); expect(data_get($payload, 'decision_card.actionUrl'))->toBeNull() ->and(data_get($payload, 'primary_action'))->toBeNull() ->and(data_get($payload, 'cards.0.url'))->toBeNull() ->and(data_get($payload, 'path_items.0.url'))->toBeNull(); expect(data_get(session()->get($filtersSessionKey, []), 'managed_environment_id.value'))->toBeNull(); }); function spec314EvidenceSnapshot(ManagedEnvironment $environment, string $completenessState): EvidenceSnapshot { return EvidenceSnapshot::query()->create([ 'managed_environment_id' => (int) $environment->getKey(), 'workspace_id' => (int) $environment->workspace_id, 'status' => EvidenceSnapshotStatus::Active->value, 'completeness_state' => $completenessState, 'summary' => ['missing_dimensions' => 0, 'stale_dimensions' => 0], 'generated_at' => now(), ]); }