From 140d730b605a88a91a9f88a22436656ec64f9c65 Mon Sep 17 00:00:00 2001 From: Rene Fichtmueller Date: Thu, 16 Jul 2026 21:56:14 +0200 Subject: [PATCH] test: fix pdf-export mocks/assertions for the setDefaultTimeout API change The ASPA/silent-failure-audit fix to renderer.ts (page.pdf() has no 'timeout' option in real Playwright; moved to page.setDefaultTimeout() before the call) was only typechecked at the time, never run against the test suite -- the mocks didn't implement setDefaultTimeout and two assertions still expected the old timeout-in-pdf()-options shape. Caught by the new build-verify CI workflow on its first real run. 215/215 tests pass now. --- src/features/pdf-export/__tests__/integration.test.ts | 1 + src/features/pdf-export/__tests__/renderer.test.ts | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/features/pdf-export/__tests__/integration.test.ts b/src/features/pdf-export/__tests__/integration.test.ts index f74a779..b36fe3d 100644 --- a/src/features/pdf-export/__tests__/integration.test.ts +++ b/src/features/pdf-export/__tests__/integration.test.ts @@ -9,6 +9,7 @@ import type { Pool } from 'pg' // Mock Playwright for renderer tests vi.mock('playwright', () => { const mockPage = { + setDefaultTimeout: vi.fn(), setContent: vi.fn().mockResolvedValue(undefined), pdf: vi.fn().mockResolvedValue(Buffer.from('pdf binary content')), close: vi.fn().mockResolvedValue(undefined), diff --git a/src/features/pdf-export/__tests__/renderer.test.ts b/src/features/pdf-export/__tests__/renderer.test.ts index 855b96d..025e9df 100644 --- a/src/features/pdf-export/__tests__/renderer.test.ts +++ b/src/features/pdf-export/__tests__/renderer.test.ts @@ -5,6 +5,7 @@ import type { PDFTemplateData } from '../types' // Mock Playwright vi.mock('playwright', () => { const mockPage = { + setDefaultTimeout: vi.fn(), setContent: vi.fn().mockResolvedValue(undefined), pdf: vi.fn().mockResolvedValue(Buffer.from('mock pdf content')), close: vi.fn().mockResolvedValue(undefined), @@ -85,11 +86,13 @@ describe('PDFRenderer', () => { const mockBrowser = await (chromium.launch as any)() const mockPage = await mockBrowser.newPage() + // Playwright's page.pdf() has no `timeout` option -- the timeout is set via + // page.setDefaultTimeout() before the call instead (see renderer.ts). expect(mockPage.pdf).toHaveBeenCalledWith({ format: 'A4', margin: { top: '0', right: '0', bottom: '0', left: '0' }, - timeout: 30000, }) + expect(mockPage.setDefaultTimeout).toHaveBeenCalledWith(30000) }) it('should respect custom timeout', async () => { @@ -102,11 +105,7 @@ describe('PDFRenderer', () => { const mockBrowser = await (chromium.launch as any)() const mockPage = await mockBrowser.newPage() - expect(mockPage.pdf).toHaveBeenCalledWith( - expect.objectContaining({ - timeout: customTimeout, - }) - ) + expect(mockPage.setDefaultTimeout).toHaveBeenCalledWith(customTimeout) }) it('should close page after rendering', async () => {