false]); $user = User::factory()->create(); $existingTenant = Tenant::factory()->create(); $user->tenants()->syncWithoutDetaching([ $existingTenant->getKey() => ['role' => 'owner'], ]); $this->actingAs($user); $tenantGuid = '11111111-1111-1111-1111-111111111111'; Livewire::withQueryParams([ 'tenant' => (string) $existingTenant->external_id, ])->test(TenantOnboardingWizard::class) ->goToNextWizardStep() ->fillForm([ 'name' => 'Acme', 'environment' => 'other', 'tenant_id' => $tenantGuid, 'domain' => 'acme.example', ], 'form') ->goToNextWizardStep(); $tenant = Tenant::query()->where('tenant_id', $tenantGuid)->firstOrFail(); $membership = TenantMembership::query() ->where('tenant_id', $tenant->getKey()) ->where('user_id', $user->getKey()) ->firstOrFail(); expect($membership->role)->toBe('owner'); expect($membership->source)->toBe('manual'); $audit = AuditLog::query() ->where('tenant_id', $tenant->getKey()) ->where('action', 'tenant_membership.bootstrap_assign') ->latest('id') ->first(); expect($audit)->not->toBeNull(); });