const { test, expect } = require('@playwright/test');
const { openController, openDisplay, resetGame, addPoints } = require('./helpers.cjs');

test.describe('Game Simulation', () => {
    test('Simulazione Partita: Controller aggiunge punti finché non cambia il set', async ({ context }) => {
        const displayPage = await openDisplay(context);
        const controllerPage = await openController(context);

        await resetGame(controllerPage);

        // Porta Home a 25: in ControllerPage il click su .team-score.home-bg
        // incrementa i punti home. A 25-0 scatta la vittoria del set.
        await addPoints(controllerPage, 'home', 25);

        // A 25-0 compare automaticamente il dialog "SET VINTO"
        await expect(controllerPage.locator('.team-score.home-bg .team-pts')).toHaveText('25');
        await controllerPage.waitForSelector('.dialog-winner');

        // Procedi al set successivo: registra il set vinto da Home
        await controllerPage.getByText('VAI AL SET SUCCESSIVO').click();
        // doNuovoSet riapre il dialog di configurazione: chiudilo
        await controllerPage.locator('.dialog-config .btn-cancel').click();
        await controllerPage.waitForTimeout(300);

        // Verifica che il set Home sia incrementato a 1
        await expect(controllerPage.locator('.team-score.home-bg .team-set')).toContainText('SET 1');
    });
});
