import { test, expect } from '@playwright/test' test('homepage visual check', async ({ page }) => { await page.setViewportSize({ width: 1440, height: 900 }) const errors: string[] = [] page.on('console', msg => { if (msg.type() === 'error') errors.push(msg.text()) }) await page.goto('http://localhost:3000/') await page.waitForLoadState('networkidle') await page.screenshot({ path: '/tmp/home-desktop.png', fullPage: false }) await page.screenshot({ path: '/tmp/home-desktop-full.png', fullPage: true }) const imgs = await page.$$eval('img', imgs => imgs.map(i => ({ src: i.src, ok: i.naturalWidth > 0 }))) const broken = imgs.filter(i => !i.ok) const headerH = await page.$eval('header', h => h.offsetHeight).catch(() => null) console.log('Header height:', headerH) console.log('Images:', imgs.length, 'broken:', broken.length) if (broken.length) console.log('BROKEN:', broken.map(i => i.src.split('/').pop())) console.log('Errors:', errors.length ? errors : 'none') expect(broken.length, 'broken images').toBe(0) })