for($tenant) ->create([ 'provider' => 'microsoft', 'is_default' => true, ]); $session = OnboardingSession::factory() ->for($tenant) ->create([ 'status' => 'in_progress', 'current_step' => 4, 'provider_connection_id' => (int) $connection->getKey(), ]); $this->actingAs($user); Filament::setTenant($tenant, true); Livewire::test(TenantOnboardingTaskBoard::class) ->call('startTask', OnboardingTaskType::VerifyPermissions) ->assertSuccessful(); expect(OperationRun::query() ->where('tenant_id', $tenant->getKey()) ->where('type', OnboardingTaskType::VerifyPermissions) ->count() )->toBe(1); Queue::assertPushed(OnboardingVerifyPermissionsJob::class); // Attempt to start again while still active should dedupe. Livewire::test(TenantOnboardingTaskBoard::class) ->call('startTask', OnboardingTaskType::VerifyPermissions) ->assertSuccessful(); expect(OperationRun::query() ->where('tenant_id', $tenant->getKey()) ->where('type', OnboardingTaskType::VerifyPermissions) ->count() )->toBe(1); expect(Queue::pushed(OnboardingVerifyPermissionsJob::class))->toHaveCount(1); // Keep session referenced so it can't be optimized away. expect($session->getKey())->toBeInt(); });