jacquardSnapshot

← snapshot

1248 bytes
import { chromium } from "@playwright/test";
const b = await chromium.launch();
const p = await b.newPage({ viewport: { width: 1280, height: 900 }, colorScheme: "dark" });
const errs = [];
p.on("console", m => { if (m.type()==="error") errs.push(m.text()); });
p.on("pageerror", e => errs.push("pageerror: "+e.message));
await p.goto("http://localhost:3000/", { waitUntil: "networkidle" });
await p.waitForTimeout(4000);
const orb = p.locator(".jac-orb").first();
const n = await p.locator(".jac-orb").count();
console.log("orbs on page:", n);
if (n) {
  await orb.screenshot({ path: "tour/lab/orb-default.png" });
  const ink = await p.evaluate(() => {
    const c = document.querySelector(".jac-orb canvas");
    if (!c) return "no canvas";
    const t = document.createElement("canvas"); t.width=64; t.height=64;
    const x = t.getContext("2d"); x.drawImage(c,0,0,64,64);
    const d = x.getImageData(0,0,64,64).data;
    let lit=0; for(let i=0;i<d.length;i+=4) if(d[i+3]>12 && d[i]+d[i+1]+d[i+2]>40) lit++;
    return +((lit/4096)*100).toFixed(1);
  });
  console.log("orb ink:", ink, "%");
}
await p.screenshot({ path: "tour/lab/home-orb.png" });
console.log("errors:", errs.length ? [...new Set(errs)].slice(0,4) : "none");
await b.close();