/** * No console errors on any main page — a cheap tripwire for exceptions * that unit tests (which render components in isolation) don't exercise, * such as a page-level data-fetch/render crash only visible end-to-end. */ import { test, expect } from '@playwright/test' import { MAIN_PAGES } from '../support/pages' test.describe('no console errors on main pages', () => { for (const mainPage of MAIN_PAGES) { test(`${mainPage.name} (${mainPage.path}) logs no console errors`, async ({ page }) => { const errors: string[] = [] page.on('console', (msg) => { if (msg.type() === 'error') errors.push(msg.text()) }) page.on('pageerror', (err) => errors.push(err.message)) await page.goto(mainPage.path) await expect(page.getByTestId(mainPage.testId)).toBeVisible() await page.waitForLoadState('networkidle') expect(errors, `console errors on ${mainPage.path}:\n${errors.join('\n')}`).toEqual([]) }) } })