import { chromium } from "playwright"; const TOK = process.argv[2]; async function prepare(page, url, token) { if (token) { await page.goto(new URL(url).origin + "/", { waitUntil: "domcontentloaded" }); await page.evaluate((v)=>localStorage.setItem("airshelf_token",v), token); } await page.goto(url, { waitUntil: "networkidle" }); if (token) { await page.evaluate((v)=>localStorage.setItem("airshelf_token",v), token); await page.goto(url, { waitUntil: "networkidle" }); await page.waitForTimeout(900); } } const b = await chromium.launch(); const ctx = await b.newContext({ viewport:{width:1440,height:900}, deviceScaleFactor:1, colorScheme:"light", reducedMotion:"reduce" }); const sp = await ctx.newPage(); const tp = await ctx.newPage(); await prepare(sp, "http://127.0.0.1:5173/exact/model-photo.html", TOK); await prepare(tp, "http://127.0.0.1:5173/model-photo", TOK); const t = await tp.evaluate(()=>{const x=document.body.innerText||"";return {login:x.includes("AUTH/LOGIN"),first:x.replace(/\s+/g," ").slice(0,60),tok:localStorage.getItem("airshelf_token")?.length};}); console.log("TARGET after exact-compare-flow:", JSON.stringify(t)); await b.close();