<?php

declare(strict_types=1);

use App\Support\Links\RequiredPermissionsLinks;
use App\Support\Workspaces\WorkspaceContext;
use Illuminate\Foundation\Testing\RefreshDatabase;

uses(RefreshDatabase::class);

pest()->browser()->timeout(20_000);

it('smokes provider capability grouping on the required permissions page', function (): void {
    [$user, $tenant] = createUserWithTenant(role: 'owner');

    $this->actingAs($user)->withSession([
        WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id,
        WorkspaceContext::LAST_ENVIRONMENT_IDS_SESSION_KEY => [
            (string) $tenant->workspace_id => (int) $tenant->getKey(),
        ],
    ]);

    visit(RequiredPermissionsLinks::requiredPermissions($tenant, ['status' => 'all']))
        ->waitForText('Provider capabilities')
        ->assertSee('Inventory read')
        ->assertSee('Directory role definitions read')
        ->assertSee('Technical details')
        ->assertNoJavaScriptErrors()
        ->assertNoConsoleLogs();
});
