This repository has no description
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546// scripts/visual-diff.tsimport { chromium } from '@playwright/test'import { mkdir } from 'node:fs/promises'
const URLS = [ '/', '/blog/', '/blog/a-guide-to-laravel-authorization-patterns/', '/blog/feedback-loops-in-an-AI-era/', '/blog/im-free/', '/projects/', '/projects/bully/', '/tags/', '/about/', '/hire-me/',]
const NEW_BASE = process.env.PLAYWRIGHT_BASE_URL ?? 'http://localhost:3001'
async function main() { await mkdir('.visual-diff/old', { recursive: true }) await mkdir('.visual-diff/new', { recursive: true }) const browser = await chromium.launch() const ctx = await browser.newContext({ viewport: { width: 1280, height: 800 } }) const page = await ctx.newPage() for (const url of URLS) { const file = url.replace(/\W+/g, '_').replace(/^_|_$/g, '') || 'home' console.log(`Capturing: ${url}`) try { await page.goto('https://arter.dev' + url, { waitUntil: 'networkidle', timeout: 30000 }) await page.screenshot({ path: `.visual-diff/old/${file}.png`, fullPage: true }) } catch (e) { console.error(` [WARN] Failed to capture old site for ${url}: ${(e as Error).message}`) } try { await page.goto(NEW_BASE + url, { waitUntil: 'networkidle', timeout: 30000 }) await page.screenshot({ path: `.visual-diff/new/${file}.png`, fullPage: true }) } catch (e) { console.error(` [WARN] Failed to capture new site for ${url}: ${(e as Error).message}`) } } await browser.close() console.log('Visual diff screenshots written to .visual-diff/{old,new}')}main().catch((e) => { console.error(e); process.exit(1) })