// @vitest-environment happy-dom import { describe, it, expect, vi, afterEach } from 'vitest' import { generaReferto } from '../../src/referto.js' import { createInitialState } from '../../src/gameState.js' // generaReferto รจ l'unico punto con effetti collaterali di referto.js (window.open // + stampa): qui verifichiamo che orchestri correttamente le API del browser, // mockando window.open per non aprire davvero una finestra durante i test. describe('generaReferto (referto.js)', () => { afterEach(() => { vi.restoreAllMocks() }) it('apre una nuova scheda, scrive il referto e avvia la stampa', () => { const popup = { document: { write: vi.fn(), close: vi.fn() }, print: vi.fn(), } const openSpy = vi.spyOn(window, 'open').mockReturnValue(popup) const state = createInitialState() state.sp.nomi = { home: 'Antoniana', guest: 'Rivali' } generaReferto(state) expect(openSpy).toHaveBeenCalledWith('', '_blank') expect(popup.document.write).toHaveBeenCalledTimes(1) expect(popup.document.write.mock.calls[0][0]).toContain('Antoniana') expect(popup.document.close).toHaveBeenCalledTimes(1) expect(popup.print).toHaveBeenCalledTimes(1) }) })