create(); $user = User::factory()->create(); $user->tenants()->syncWithoutDetaching([ $tenant->getKey() => ['role' => 'owner'], ]); Filament::setTenant($tenant, true); $backupSet = BackupSet::create([ 'tenant_id' => $tenant->id, 'name' => 'Backup', 'status' => 'completed', 'item_count' => 0, ]); $runs = collect(range(1, 3))->map(function () use ($tenant, $backupSet) { $run = RestoreRun::create([ 'tenant_id' => $tenant->id, 'backup_set_id' => $backupSet->id, 'status' => 'completed', 'is_dry_run' => true, 'requested_by' => 'tester@example.com', ]); $run->delete(); return $run; }); Livewire::actingAs($user) ->test(RestoreRunResource\Pages\ListRestoreRuns::class) ->filterTable(\Filament\Tables\Filters\TrashedFilter::class, false) ->callTableBulkAction('bulk_force_delete', $runs, data: [ 'confirmation' => 'DELETE', ]) ->assertHasNoTableBulkActionErrors(); $runs->each(fn (RestoreRun $run) => expect(RestoreRun::withTrashed()->find($run->id))->toBeNull()); $opRun = OperationRun::query() ->where('tenant_id', $tenant->getKey()) ->where('type', 'restore_run.force_delete') ->latest('id') ->first(); expect($opRun)->not->toBeNull(); expect($opRun->status)->toBe('completed'); expect($opRun->outcome)->toBeIn(['succeeded', 'partially_succeeded']); expect((int) ($opRun->summary_counts['deleted'] ?? 0))->toBe(3); });