create(); $workspace = Workspace::factory()->create(); WorkspaceMembership::factory()->create([ 'workspace_id' => $workspace->getKey(), 'user_id' => $user->getKey(), 'role' => 'owner', ]); $tenant = Tenant::factory()->create([ 'status' => 'active', 'workspace_id' => $workspace->getKey(), ]); TenantMembership::query()->create([ 'tenant_id' => $tenant->getKey(), 'user_id' => $user->getKey(), 'role' => 'owner', 'source' => 'manual', 'source_ref' => null, 'created_by_user_id' => null, ]); $response = $this ->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $workspace->getKey()]) ->post(route('admin.select-tenant'), ['tenant_id' => (int) $tenant->getKey()]); $response->assertRedirect(TenantDashboard::getUrl(tenant: $tenant)); $user->refresh(); if (Schema::hasColumn('users', 'last_tenant_id')) { expect($user->last_tenant_id)->toBe($tenant->getKey()); return; } if (Schema::hasTable('user_tenant_preferences')) { $preference = $user->tenantPreferences() ->where('tenant_id', $tenant->getKey()) ->first(); expect($preference)->not->toBeNull(); expect($preference?->last_used_at)->not->toBeNull(); } });