platform()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'provider' => 'microsoft', ]); $this->actingAs($user); $tenant->makeCurrent(); Filament::setTenant($tenant, true); Livewire::test(EditProviderConnection::class, ['record' => $connection->getRouteKey()]) ->assertActionVisible('enable_dedicated_override') ->assertActionEnabled('enable_dedicated_override'); }); it('shows dedicated override actions as disabled for tenant managers without the stronger capability', function (): void { [$user, $tenant] = createUserWithTenant(role: 'manager', ensureDefaultMicrosoftProviderConnection: false); $connection = ProviderConnection::factory()->platform()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'provider' => 'microsoft', ]); $this->actingAs($user); $tenant->makeCurrent(); Filament::setTenant($tenant, true); Livewire::test(EditProviderConnection::class, ['record' => $connection->getRouteKey()]) ->assertActionVisible('enable_dedicated_override') ->assertActionDisabled('enable_dedicated_override') ->assertActionExists('enable_dedicated_override', function (Action $action): bool { return $action->getTooltip() === UiTooltips::insufficientPermission(); }); }); it('does not mutate the connection when a tenant manager attempts a dedicated override action', function (): void { [$user, $tenant] = createUserWithTenant(role: 'manager', ensureDefaultMicrosoftProviderConnection: false); $connection = ProviderConnection::factory()->platform()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'provider' => 'microsoft', ]); $this->actingAs($user); $tenant->makeCurrent(); Filament::setTenant($tenant, true); Livewire::test(EditProviderConnection::class, ['record' => $connection->getRouteKey()]) ->callAction('enable_dedicated_override', data: [ 'client_id' => 'manager-dedicated-client', 'client_secret' => 'manager-dedicated-secret', ]); $connection->refresh(); expect($connection->connection_type)->toBe(\App\Support\Providers\ProviderConnectionType::Platform) ->and($connection->credential)->toBeNull(); });