instance()->getTable()->getFilterIndicators()) ->map(fn ($indicator): string => (string) $indicator->getLabel()) ->all(); } it('defaults to open findings across all finding types', function (): void { [$user, $tenant] = createUserWithTenant(role: 'manager'); $this->actingAs($user); Filament::setTenant($tenant, true); $openDrift = Finding::factory()->for($tenant)->create([ 'finding_type' => Finding::FINDING_TYPE_DRIFT, 'status' => Finding::STATUS_NEW, ]); $openPermission = Finding::factory()->permissionPosture()->for($tenant)->create([ 'status' => Finding::STATUS_TRIAGED, ]); $openEntra = Finding::factory()->entraAdminRoles()->for($tenant)->create([ 'status' => Finding::STATUS_IN_PROGRESS, ]); $reopened = Finding::factory()->for($tenant)->create([ 'finding_type' => Finding::FINDING_TYPE_DRIFT, 'status' => Finding::STATUS_REOPENED, ]); $resolved = Finding::factory()->for($tenant)->create([ 'status' => Finding::STATUS_RESOLVED, ]); $closed = Finding::factory()->for($tenant)->create([ 'status' => Finding::STATUS_CLOSED, ]); $riskAccepted = Finding::factory()->for($tenant)->create([ 'status' => Finding::STATUS_RISK_ACCEPTED, ]); Livewire::test(ListFindings::class) ->assertCanSeeTableRecords([$openDrift, $openPermission, $openEntra, $reopened]) ->assertCanNotSeeTableRecords([$resolved, $closed, $riskAccepted]); }); it('keeps findings list defaults calm with explicit sortability and hidden forensic detail', function (): void { [$user, $tenant] = createUserWithTenant(role: 'manager'); $this->actingAs($user); Filament::setTenant($tenant, true); $component = Livewire::test(ListFindings::class); $table = $component->instance()->getTable(); expect($table->getPaginationPageOptions())->toBe(\App\Support\Filament\TablePaginationProfiles::resource()); expect($table->getDefaultSortColumn())->toBe('created_at'); expect($table->getDefaultSortDirection())->toBe('desc'); expect($table->getEmptyStateHeading())->toBe('No findings match this view'); expect($table->getColumn('subject_display_name')?->isSearchable())->toBeTrue(); expect($table->getColumn('due_at')?->isSortable())->toBeTrue(); expect($table->getColumn('evidence_fidelity')?->isToggledHiddenByDefault())->toBeTrue(); expect($table->getColumn('subject_type')?->isToggledHiddenByDefault())->toBeTrue(); expect($table->getColumn('subject_external_id')?->isToggledHiddenByDefault())->toBeTrue(); expect($table->getColumn('scope_key')?->isToggledHiddenByDefault())->toBeTrue(); expect(count($table->getVisibleColumns()))->toBeLessThanOrEqual(7); }); it('defines created date-range narrowing with active indicators on the findings table', function (): void { [$user, $tenant] = createUserWithTenant(role: 'manager'); $this->actingAs($user); Filament::setTenant($tenant, true); $component = Livewire::test(ListFindings::class) ->assertTableFilterExists('created_at') ->set('tableFilters.created_at.from', now()->subDay()->toDateString()) ->set('tableFilters.created_at.until', now()->toDateString()); expect(findingsDefaultIndicatorLabels($component)) ->toContain('Created from '.now()->subDay()->toFormattedDateString()) ->toContain('Created until '.now()->toFormattedDateString()); });