<?php

declare(strict_types=1);

/*
|--------------------------------------------------------------------------
| Browser smoke-tests (Pest 4 + pest-plugin-browser)
|--------------------------------------------------------------------------
|
| Sprint 2 Phase A — O-stack-01.
|
| ЗАГОТОВКА ПОД LINUX CI (pending).
|
| Pest 4 browser API (visit/fill/click/assertSee) использует Playwright
| под капотом + ext-sockets (для управления локальным сервером тестов).
|
| ПРОБЛЕМА Windows native PHP:
|   - ext-sockets не входит в стандартную сборку PHP для Windows (php.net).
|   - pest-plugin-browser при автозагрузке вызывает socket_create_listen()
|     из Pest\Browser\Support\Port — fatal error «Call to undefined function»
|     ДО запуска любого теста, что блокирует ВЕСЬ Pest-suite.
|   - Плагин нельзя оставить в require-dev — composer install на Windows
|     ломает CLI-команду `php artisan test`.
|
| РЕШЕНИЕ:
|   - pest-plugin-browser НЕ в composer.json (не require-dev).
|   - Этот файл — placeholder со скелетом тестов в комментариях.
|   - На Linux CI: установить плагин (`composer require pestphp/pest-plugin-browser
|     --dev`), раскомментировать тела тестов, выполнить
|     `npx playwright install chromium`, запустить `php artisan test
|     --testsuite=Browser`.
|   - Структура файла, registered testsuite (phpunit.xml), Pest.php
|     extend(...)->in('Browser') — всё на месте, инфраструктура готова.
|
| Что покрываем (когда CI Linux запустит):
|   - login flow → редирект на /dashboard и видимая надпись "Dashboard"
|   - deal-create flow → новая сделка появляется в списке
|
*/

it('login flow redirects to dashboard', function (): void {
    // На Linux CI после установки pest-plugin-browser:
    //
    // use App\Models\Tenant;
    // use App\Models\User;
    //
    // $tenant = Tenant::factory()->create();
    // $user = User::factory()->for($tenant)->create([
    //     'password_hash' => bcrypt('test1234'),
    // ]);
    //
    // $page = visit('/login');
    // $page->fill('input[name="email"]', $user->email);
    // $page->fill('input[name="password"]', 'test1234');
    // $page->click('button[type="submit"]');
    // $page->assertSee('Dashboard');
    expect(true)->toBeTrue();
})->skip('Browser test pending Linux CI (см. шапку файла, требует ext-sockets + Playwright + pest-plugin-browser)');

it('deal create flow appears in list', function (): void {
    // На Linux CI после установки pest-plugin-browser:
    //
    // $tenant = Tenant::factory()->create();
    // $user = User::factory()->for($tenant)->create([
    //     'password_hash' => bcrypt('test1234'),
    // ]);
    //
    // $page = visit('/login');
    // $page->fill('input[name="email"]', $user->email);
    // $page->fill('input[name="password"]', 'test1234');
    // $page->click('button[type="submit"]');
    // $page->visit('/deals');
    // $page->click('[data-test="create-deal-btn"]');
    // $page->fill('input[name="full_name"]', 'Test Lead');
    // $page->click('button[type="submit"]');
    // $page->assertSee('Test Lead');
    expect(true)->toBeTrue();
})->skip('Browser test pending Linux CI (см. шапку файла, требует ext-sockets + Playwright + pest-plugin-browser)');
