create(); $user = User::factory()->create(); $policies = Policy::factory()->count(10)->create(['tenant_id' => $tenant->id]); $policyIds = $policies->pluck('id')->toArray(); /** @var OperationRunService $service */ $service = app(OperationRunService::class); $opRun = $service->ensureRun( tenant: $tenant, type: 'policy.delete', inputs: [ 'scope' => 'subset', 'policy_ids' => $policyIds, ], initiator: $user, ); // Simulate Sync execution (workers will run immediately on sync queue) BulkPolicyDeleteJob::dispatchSync( tenantId: (int) $tenant->getKey(), userId: (int) $user->getKey(), policyIds: $policyIds, operationRun: $opRun, ); $opRun->refresh(); expect($opRun)->toBeInstanceOf(OperationRun::class); expect($opRun->status)->toBe('completed'); expect($opRun->outcome)->toBe('succeeded'); expect($opRun->summary_counts)->toMatchArray([ 'total' => 10, 'processed' => 10, 'succeeded' => 10, 'failed' => 0, ]); $policies->each(function ($policy) { expect($policy->refresh()->ignored_at)->not->toBeNull(); }); });