create([ 'tenant_id' => $tenant->id, 'name' => 'No bulk delete', 'is_enabled' => true, 'timezone' => 'UTC', 'frequency' => 'daily', 'time_of_day' => '01:00:00', 'days_of_week' => null, 'policy_types' => ['deviceConfiguration'], 'include_foundations' => true, 'retention_keep_last' => 30, ]); $this->actingAs($user); Filament::setTenant($tenant, true); Livewire::test(ListBackupSchedules::class) ->assertTableBulkActionDoesNotExist('bulk_delete') ->assertTableBulkActionExists('bulk_run_now') ->assertTableBulkActionExists('bulk_retry'); expect(BackupSchedule::query()->whereKey($schedule->id)->exists())->toBeTrue(); }); test('backup schedules remain unchanged when bulk destructive action is absent', function () { [$user, $tenant] = createUserWithTenant(role: 'operator'); $scheduleA = BackupSchedule::query()->create([ 'tenant_id' => $tenant->id, 'name' => 'Keep A', 'is_enabled' => true, 'timezone' => 'UTC', 'frequency' => 'daily', 'time_of_day' => '01:00:00', 'days_of_week' => null, 'policy_types' => ['deviceConfiguration'], 'include_foundations' => true, 'retention_keep_last' => 30, ]); $scheduleB = BackupSchedule::query()->create([ 'tenant_id' => $tenant->id, 'name' => 'Keep B', 'is_enabled' => true, 'timezone' => 'UTC', 'frequency' => 'daily', 'time_of_day' => '02:00:00', 'days_of_week' => null, 'policy_types' => ['deviceConfiguration'], 'include_foundations' => true, 'retention_keep_last' => 30, ]); $this->actingAs($user); Filament::setTenant($tenant, true); Livewire::test(ListBackupSchedules::class) ->assertTableBulkActionDoesNotExist('bulk_delete'); expect(BackupSchedule::query()->where('tenant_id', $tenant->id)->pluck('id')->all()) ->toContain((int) $scheduleA->id, (int) $scheduleB->id); });