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, ]); $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(); expect($run->trashed())->toBeTrue(); Livewire::actingAs($user) ->test(RestoreRunResource\Pages\ListRestoreRuns::class) ->filterTable(\Filament\Tables\Filters\TrashedFilter::class, false) ->callTableBulkAction('bulk_restore', collect([$run])) ->assertHasNoTableBulkActionErrors(); $opRun = OperationRun::query() ->where('tenant_id', $tenant->id) ->where('user_id', $user->id) ->where('type', 'restore_run.restore') ->latest('id') ->first(); expect($opRun)->not->toBeNull(); $counts = is_array($opRun->summary_counts) ? $opRun->summary_counts : []; expect((int) ($counts['succeeded'] ?? 0))->toBe(1) ->and((int) ($counts['skipped'] ?? 0))->toBe(0) ->and((int) ($counts['failed'] ?? 0))->toBe(0); $run->refresh(); expect($run->trashed())->toBeFalse(); });