// Take a fresh screenshot of every scene with the blueprint shell. import { chromium } from "playwright"; import { mkdirSync } from "node:fs"; mkdirSync("qa/screenshots/v4", { recursive: true }); const URL = process.env.URL || "http://127.0.0.1:5173"; const b = await chromium.launch({ headless: true }); const p = await b.newPage({ viewport: { width: 1440, height: 900 } }); await p.goto(URL, { waitUntil: "networkidle" }); await p.waitForTimeout(400); await p.screenshot({ path: "qa/screenshots/v4/01-landing.png" }); await p.locator(".sc-card").first().click(); await p.waitForSelector(".mc"); await p.waitForTimeout(800); await p.screenshot({ path: "qa/screenshots/v4/02-mission-procurement.png" }); await p.locator(".mc-tab", { hasText: /accounts receivable/i }).click(); await p.waitForTimeout(700); await p.screenshot({ path: "qa/screenshots/v4/03-mission-ar-blueprint.png" }); await p.locator(".itab", { hasText: /^raw/i }).click(); await p.waitForTimeout(200); await p.screenshot({ path: "qa/screenshots/v4/04-inspector-raw.png" }); await p.keyboard.press("Meta+k"); await p.waitForSelector(".cmd"); await p.waitForTimeout(200); await p.screenshot({ path: "qa/screenshots/v4/05-command-palette.png" }); await p.keyboard.press("Escape"); await p.waitForTimeout(100); await p.locator(".tab", { hasText: /studio/i }).click(); await p.waitForSelector(".studio"); await p.waitForTimeout(300); await p.screenshot({ path: "qa/screenshots/v4/06-studio.png" }); await p.locator(".tab", { hasText: /settings/i }).click(); await p.waitForSelector(".settings"); await p.waitForTimeout(300); await p.screenshot({ path: "qa/screenshots/v4/07-settings.png" }); await p.locator(".tab", { hasText: /runs/i }).click(); await p.waitForSelector(".rh"); await p.waitForTimeout(300); await p.screenshot({ path: "qa/screenshots/v4/08-run-history.png" }); await p.locator(".tab", { hasText: /mission/i }).click(); await p.waitForTimeout(400); await p.locator(".link-btn", { hasText: /console/i }).first().click(); await p.waitForSelector(".console"); await p.locator(".mode-toggle").first().click(); await p.waitForFunction(() => Array.from(document.querySelectorAll(".mode-pill")).some(el => el.textContent?.trim() === "LIVE"), { timeout: 15000 }); await p.waitForTimeout(2000); await p.screenshot({ path: "qa/screenshots/v4/09-mission-live-with-console.png" }); const fs = await import("node:fs/promises"); const list = await fs.readdir("qa/screenshots/v4"); console.log(`captured ${list.length} screenshots: ${list.sort().join(", ")}`); await b.close();