const { test, expect } = require('@playwright/test'); const { openController, resetGame, addPoints } = require('./helpers.cjs'); test.describe('Referto di fine partita', () => { test('a PARTITA FINITA il bottone REFERTO apre il referto stampabile', async ({ context }) => { // window.print() bloccherebbe il test: lo neutralizziamo (anche nel popup). await context.addInitScript(() => { window.print = () => {}; }); const controllerPage = await openController(context); await resetGame(controllerPage); // Modalità 2/3 (bastano 2 set per chiudere la partita) await controllerPage.getByText('Config').click(); await controllerPage.waitForSelector('.dialog-config'); await controllerPage.locator('.btn-mode').getByText('2/3').click(); await controllerPage.locator('.dialog-config .btn-confirm').click(); await controllerPage.waitForTimeout(200); // SET 1: Home a 25 → dialog SET VINTO → vai al set successivo await addPoints(controllerPage, 'home', 25); await controllerPage.waitForSelector('.dialog-winner'); await controllerPage.getByText('VAI AL SET SUCCESSIVO').click(); await controllerPage.locator('.dialog-config .btn-cancel').click(); await controllerPage.waitForTimeout(200); // SET 2: Home a 25 → PARTITA FINITA await addPoints(controllerPage, 'home', 25); await controllerPage.waitForSelector('.dialog-winner'); const referto = controllerPage.getByRole('button', { name: 'REFERTO' }); await expect(referto).toBeVisible(); // Il click apre il referto in un nuovo popup const [popup] = await Promise.all([ context.waitForEvent('page'), referto.click(), ]); // Verifica il contenuto del referto const body = popup.locator('body'); await expect(body).toContainText('Referto di Gara'); await expect(popup.locator('.set-numero')).toHaveText(['1', '2']); // Home ha vinto 2 set a 0 await expect(body).toContainText('2 – 0'); }); });