create(); $user = User::factory()->create(); $okPolicy = Policy::factory()->create(['tenant_id' => $tenant->id]); PolicyVersion::create([ 'tenant_id' => $tenant->id, 'policy_id' => $okPolicy->id, 'policy_type' => $okPolicy->policy_type, 'version_number' => 1, 'snapshot' => ['ok' => true], 'captured_at' => now(), ]); $missingVersionPolicy = Policy::factory()->create(['tenant_id' => $tenant->id]); /** @var OperationRunService $service */ $service = app(OperationRunService::class); $opRun = $service->ensureRun( tenant: $tenant, type: 'policy.export', inputs: [ 'scope' => 'subset', 'policy_ids' => [$okPolicy->id, $missingVersionPolicy->id], ], initiator: $user, ); (new BulkPolicyExportJob( tenantId: (int) $tenant->getKey(), userId: (int) $user->getKey(), policyIds: [$okPolicy->id, $missingVersionPolicy->id], backupName: 'Failures Backup', operationRun: $opRun, ))->handle($service); $opRun->refresh(); expect($opRun)->toBeInstanceOf(OperationRun::class); expect($opRun->status)->toBe('completed'); expect($opRun->outcome)->toBe('partially_succeeded'); expect($opRun->summary_counts)->toMatchArray([ 'total' => 2, 'processed' => 2, 'succeeded' => 1, 'failed' => 1, 'created' => 1, ]); $this->assertDatabaseHas('backup_sets', [ 'tenant_id' => $tenant->id, 'name' => 'Failures Backup', ]); });