TenantAtlas/tests/Feature/Findings/FindingsListDefaultsTest.php
2026-02-25 02:45:20 +01:00

52 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
use App\Filament\Resources\FindingResource\Pages\ListFindings;
use App\Models\Finding;
use Filament\Facades\Filament;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
uses(RefreshDatabase::class);
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]);
});