<?php

declare(strict_types=1);

use App\Filament\Pages\EnvironmentDashboard;
use App\Support\Workspaces\WorkspaceContext;
use Filament\Facades\Filament;

it('renders environment-first context actions on the dashboard', function (): void {
    [$user, $environment] = createUserWithTenant(role: 'owner');

    Filament::setTenant($environment, true);

    $this->actingAs($user)
        ->withSession([WorkspaceContext::SESSION_KEY => (int) $environment->workspace_id])
        ->get(EnvironmentDashboard::getUrl(tenant: $environment))
        ->assertOk()
        ->assertSee('Switch environment')
        ->assertSee('Clear environment scope')
        ->assertDontSee('Switch tenant')
        ->assertDontSee('Clear tenant scope');
});

it('renders all-environments shell wording on tenantless monitoring pages', function (): void {
    [$user, $environment] = createUserWithTenant(role: 'owner');

    Filament::setTenant(null, true);

    $this->actingAs($user)
        ->withSession([WorkspaceContext::SESSION_KEY => (int) $environment->workspace_id])
        ->get(route('admin.operations.index', ['workspace' => $environment->workspace]))
        ->assertOk()
        ->assertSee('All environments')
        ->assertDontSee('All tenants');
});
