create(); $this->actingAs($outsider) ->get('/admin/tenant-onboarding?tenant='.(string) $tenant->external_id) ->assertNotFound(); }); it('returns 403 when a member lacks provider run capability and tries to enqueue verification', function (): void { [$user, $tenant] = createUserWithTenant(role: 'readonly'); $this->actingAs($user); Livewire::withQueryParams([ 'tenant' => (string) $tenant->external_id, ]) ->test(TenantOnboardingWizard::class) ->call('enqueueVerification') ->assertForbidden(); }); it('allows an owner to enqueue verification', function (): void { Bus::fake(); [$user, $tenant] = createUserWithTenant(role: 'owner'); $this->actingAs($user); Livewire::withQueryParams([ 'tenant' => (string) $tenant->external_id, ]) ->test(TenantOnboardingWizard::class) ->call('enqueueVerification') ->assertSuccessful(); expect(OperationRun::query()->where('type', 'tenant.rbac.verify')->count())->toBe(1); Bus::assertDispatched(TenantOnboardingVerifyJob::class, 1); });