active()->create([ 'workspace_id' => (int) $tenant->workspace_id, ]); $snapshot = BaselineSnapshot::factory()->incomplete(BaselineReasonCodes::SNAPSHOT_CAPTURE_FAILED)->create([ 'workspace_id' => (int) $tenant->workspace_id, 'baseline_profile_id' => (int) $profile->getKey(), ]); $run = OperationRun::factory()->create([ 'tenant_id' => (int) $tenant->getKey(), 'workspace_id' => (int) $tenant->workspace_id, 'type' => 'baseline_capture', 'status' => 'completed', 'outcome' => 'failed', 'context' => [ 'baseline_profile_id' => (int) $profile->getKey(), 'baseline_snapshot_id' => (int) $snapshot->getKey(), 'result' => [ 'snapshot_id' => (int) $snapshot->getKey(), 'snapshot_lifecycle' => 'incomplete', ], 'reason_code' => BaselineReasonCodes::SNAPSHOT_CAPTURE_FAILED, ], 'failure_summary' => [ ['reason_code' => BaselineReasonCodes::SNAPSHOT_CAPTURE_FAILED, 'message' => 'Snapshot capture stopped after persistence failed.'], ], 'completed_at' => now(), ]); $truth = app(ArtifactTruthPresenter::class)->forOperationRun($run->fresh()); $explanation = $truth->operatorExplanation; Filament::setTenant(null, true); $this->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]); session([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]); Livewire::actingAs($user) ->test(TenantlessOperationRunViewer::class, ['run' => $run]) ->assertSee('Outcome') ->assertSee('Artifact truth') ->assertSee('Execution failed') ->assertSee($explanation?->headline ?? '') ->assertSee($explanation?->evaluationResultLabel() ?? '') ->assertSee($explanation?->trustworthinessLabel() ?? '') ->assertSee('Artifact not usable') ->assertSee('Artifact next step') ->assertSee('Inspect the related capture diagnostics before using this snapshot'); }); it('shows operator explanation facts for baseline compare runs with nested compare reason context', function (): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $run = OperationRun::factory()->create([ 'tenant_id' => (int) $tenant->getKey(), 'workspace_id' => (int) $tenant->workspace_id, 'type' => 'baseline_compare', 'status' => 'completed', 'outcome' => 'partially_succeeded', 'context' => [ 'baseline_compare' => [ 'reason_code' => 'evidence_capture_incomplete', 'coverage' => [ 'proof' => false, ], 'evidence_gaps' => [ 'count' => 4, ], ], ], 'summary_counts' => [ 'total' => 0, 'processed' => 0, 'errors_recorded' => 0, ], 'completed_at' => now(), ]); $truth = app(ArtifactTruthPresenter::class)->forOperationRun($run->fresh()); $explanation = $truth->operatorExplanation; Filament::setTenant(null, true); $this->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]); session([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]); Livewire::actingAs($user) ->test(TenantlessOperationRunViewer::class, ['run' => $run]) ->assertSee('Artifact truth') ->assertSee('Result meaning') ->assertSee('Result trust') ->assertSee('Artifact next step') ->assertSee($explanation?->headline ?? '') ->assertSee($explanation?->evaluationResultLabel() ?? '') ->assertSee($explanation?->trustworthinessLabel() ?? '') ->assertSee($explanation?->nextActionText ?? '') ->assertSee('The run completed, but normal output was intentionally suppressed.') ->assertSee('Resume or rerun evidence capture before relying on this compare result.'); });