actingAs($user); Filament::setTenant($tenant, true); $findings = Finding::factory() ->count(2) ->for($tenant) ->create([ 'finding_type' => Finding::FINDING_TYPE_DRIFT, 'status' => Finding::STATUS_NEW, ]); $thrown = null; try { Livewire::test(ListFindings::class) ->callTableBulkAction('acknowledge_selected', $findings); } catch (Throwable $exception) { $thrown = $exception; } expect($thrown)->not->toBeNull(); $findings->each(fn (Finding $finding) => expect($finding->refresh()->status)->toBe(Finding::STATUS_NEW)); }); test('readonly users cannot acknowledge all matching findings', function () { [$user, $tenant] = createUserWithTenant(role: 'readonly'); $this->actingAs($user); Filament::setTenant($tenant, true); $findings = Finding::factory() ->count(2) ->for($tenant) ->create([ 'finding_type' => Finding::FINDING_TYPE_DRIFT, 'status' => Finding::STATUS_NEW, ]); $thrown = null; try { Livewire::test(ListFindings::class) ->callAction('acknowledge_all_matching'); } catch (Throwable $exception) { $thrown = $exception; } expect($thrown)->not->toBeNull(); $findings->each(fn (Finding $finding) => expect($finding->refresh()->status)->toBe(Finding::STATUS_NEW)); });