create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'actor_email' => 'owner@example.com', 'actor_name' => 'Owner', 'actor_type' => 'human', 'action' => 'workspace.selected', 'status' => 'success', 'resource_type' => 'workspace', 'resource_id' => (string) $tenant->workspace_id, 'target_label' => 'Workspace 1', 'summary' => 'Workspace selected for Workspace 1', 'metadata' => [ 'reason' => 'chooser', 'method' => 'manual', ], 'recorded_at' => now(), ]); session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id); Filament::setTenant(null, true); Livewire::actingAs($user) ->test(AuditLogPage::class) ->assertCanSeeTableRecords([$audit]) ->mountTableAction('inspect', $audit) ->assertMountedActionModalSee('Workspace selected for Workspace 1') ->assertMountedActionModalSee('Readable context') ->assertMountedActionModalSee('Technical metadata'); }); it('shows operation-run navigation only for the currently inspected operation run event', function (): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $run = OperationRun::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'type' => 'baseline_compare', 'status' => OperationRunStatus::Completed->value, 'outcome' => OperationRunOutcome::Succeeded->value, ]); $withRunLink = AuditLog::query()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'actor_email' => 'owner@example.com', 'actor_name' => 'Owner', 'actor_type' => 'human', 'action' => 'operation_run.completed', 'status' => 'success', 'resource_type' => 'operation_run', 'resource_id' => (string) $run->getKey(), 'target_label' => 'Baseline compare #'.$run->getKey(), 'summary' => 'Baseline compare completed for Operation run', 'recorded_at' => now(), ]); $withoutRunLink = AuditLog::query()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => null, 'actor_email' => 'owner@example.com', 'actor_name' => 'Owner', 'actor_type' => 'human', 'action' => 'workspace.selected', 'status' => 'success', 'resource_type' => 'workspace', 'resource_id' => (string) $tenant->workspace_id, 'target_label' => 'Workspace 1', 'summary' => 'Workspace selected for Workspace 1', 'recorded_at' => now()->addSecond(), ]); session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id); Filament::setTenant(null, true); $component = Livewire::actingAs($user) ->test(AuditLogPage::class) ->assertCanSeeTableRecords([$withRunLink, $withoutRunLink]) ->mountTableAction('inspect', $withRunLink) ->assertMountedActionModalSee('Open operation run'); $component ->call('replaceMountedTableAction', 'inspect', (string) $withoutRunLink->getKey()) ->assertMountedActionModalSee('Workspace selected for Workspace 1') ->assertMountedActionModalDontSee('Open operation run') ->assertMountedActionModalDontSee('Baseline compare completed for Operation run'); }); it('clearing the slideover closes the inspection surface cleanly', function (): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $audit = AuditLog::query()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'actor_email' => 'owner@example.com', 'actor_name' => 'Owner', 'actor_type' => 'human', 'action' => 'workspace.selected', 'status' => 'success', 'resource_type' => 'workspace', 'resource_id' => (string) $tenant->workspace_id, 'target_label' => 'Workspace 1', 'summary' => 'Workspace selected for Workspace 1', 'recorded_at' => now(), ]); session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id); Filament::setTenant(null, true); $component = Livewire::actingAs($user) ->test(AuditLogPage::class) ->mountTableAction('inspect', $audit) ->unmountTableAction() ->assertTableActionNotMounted('inspect'); expect($component->instance()->getMountedTableAction())->toBeNull(); }); it('keeps record inspection actions out of the global page header', function (): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $run = OperationRun::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'type' => 'baseline_compare', 'status' => OperationRunStatus::Completed->value, 'outcome' => OperationRunOutcome::Succeeded->value, ]); AuditLog::query()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'actor_email' => 'owner@example.com', 'actor_name' => 'Owner', 'actor_type' => 'human', 'action' => 'operation_run.completed', 'status' => 'success', 'resource_type' => 'operation_run', 'resource_id' => (string) $run->getKey(), 'target_label' => 'Baseline compare #'.$run->getKey(), 'summary' => 'Baseline compare completed for Operation run', 'recorded_at' => now(), ]); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get(route('admin.monitoring.audit-log')) ->assertOk() ->assertDontSee('Close details') ->assertDontSee('Open operation run'); });