active()->create([ 'name' => 'Provider Environment A', 'external_id' => 'provider-environment-a', ]); [$user, $environmentA] = createUserWithTenant(tenant: $environmentA, role: 'owner'); $environmentB = ManagedEnvironment::factory()->active()->create([ 'workspace_id' => (int) $environmentA->workspace_id, 'name' => 'Provider Environment B', 'external_id' => 'provider-environment-b', ]); createUserWithTenant(tenant: $environmentB, user: $user, role: 'owner'); ProviderConnection::factory()->create([ 'workspace_id' => (int) $environmentA->workspace_id, 'managed_environment_id' => (int) $environmentA->getKey(), 'display_name' => 'Spec314 Provider A', ]); ProviderConnection::factory()->create([ 'workspace_id' => (int) $environmentB->workspace_id, 'managed_environment_id' => (int) $environmentB->getKey(), 'display_name' => 'Spec314 Provider B', ]); Filament::setTenant($environmentA, true); $url = ProviderConnectionResource::getUrl('index', panel: 'admin'); expect($url)->not->toContain('managed_environment_id'); $this->actingAs($user) ->withSession([ WorkspaceContext::SESSION_KEY => (int) $environmentA->workspace_id, WorkspaceContext::LAST_TENANT_IDS_SESSION_KEY => [ (string) $environmentA->workspace_id => (int) $environmentA->getKey(), ], ]) ->get($url) ->assertOk() ->assertSee('Spec314 Provider A') ->assertSee('Spec314 Provider B') ->assertSee(__('localization.shell.no_environment_selected')); }); it('Spec314 provider connections keeps explicit environment CTA filters explicit', function (): void { $environment = ManagedEnvironment::factory()->active()->create([ 'external_id' => 'provider-explicit-environment', ]); [$user, $environment] = createUserWithTenant(tenant: $environment, role: 'owner'); $url = ProviderConnectionResource::getUrl('index', [ 'managed_environment_id' => (string) $environment->external_id, ], panel: 'admin'); expect($url)->toContain('managed_environment_id=provider-explicit-environment'); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $environment->workspace_id]) ->get($url) ->assertOk(); }); it('Spec314 provider connections ignores stale persisted environment filters on clean entry', function (): void { $environmentA = ManagedEnvironment::factory()->active()->create([ 'external_id' => 'provider-stale-a', ]); [$user, $environmentA] = createUserWithTenant(tenant: $environmentA, role: 'owner'); $environmentB = ManagedEnvironment::factory()->active()->create([ 'workspace_id' => (int) $environmentA->workspace_id, 'external_id' => 'provider-stale-b', ]); createUserWithTenant(tenant: $environmentB, user: $user, role: 'owner'); $connectionA = ProviderConnection::factory()->create([ 'workspace_id' => (int) $environmentA->workspace_id, 'managed_environment_id' => (int) $environmentA->getKey(), 'display_name' => 'Spec314 Provider Stale A', ]); $connectionB = ProviderConnection::factory()->create([ 'workspace_id' => (int) $environmentB->workspace_id, 'managed_environment_id' => (int) $environmentB->getKey(), 'display_name' => 'Spec314 Provider Stale B', ]); $this->actingAs($user); setAdminPanelContext(); session()->put(WorkspaceContext::SESSION_KEY, (int) $environmentA->workspace_id); $component = Livewire::actingAs($user)->test(ListProviderConnections::class); $filtersSessionKey = $component->instance()->getTableFiltersSessionKey(); session()->put($filtersSessionKey, [ 'tenant' => ['value' => (string) $environmentA->external_id], ]); Livewire::actingAs($user) ->test(ListProviderConnections::class) ->assertCanSeeTableRecords([$connectionA, $connectionB]); expect(data_get(session()->get($filtersSessionKey, []), 'tenant.value'))->toBeNull(); });