for($tenant) ->create([ 'provider' => 'microsoft', 'status' => 'needs_consent', 'health_status' => 'unknown', 'is_default' => true, ]); $session = OnboardingSession::factory() ->for($tenant) ->create([ 'status' => 'in_progress', 'current_step' => 4, 'provider_connection_id' => (int) $connection->getKey(), ]); $run = OperationRun::factory()->create([ 'tenant_id' => $tenant->getKey(), 'user_id' => $user->getKey(), 'type' => OnboardingTaskType::ConnectionDiagnostics, ]); $job = new OnboardingConnectionDiagnosticsJob( tenantId: (int) $tenant->getKey(), userId: (int) $user->getKey(), providerConnectionId: (int) $connection->getKey(), onboardingSessionId: (int) $session->getKey(), operationRun: $run, ); $job->handle( evidence: app(OnboardingEvidenceWriter::class), runs: app(OperationRunService::class), ); $evidence = OnboardingEvidence::query() ->where('tenant_id', $tenant->getKey()) ->where('onboarding_session_id', $session->getKey()) ->where('task_type', OnboardingTaskType::ConnectionDiagnostics) ->latest('id') ->first(); expect($evidence)->not->toBeNull(); expect($evidence?->status)->toBe('blocked'); $run->refresh(); expect($run->status)->toBe('completed'); expect($run->outcome)->toBe('failed'); });