#!/usr/bin/env node // LIVE production check: https://bidaangmamamayan.com (fresh box, verified-only // feed). Confirms the three new things render on the real site: // 1. "In Pictures" band with credited photos (>=5) // 2. front-page "Thank you, Senator BAM" board band (distinct, with form) // 3. nav has the 7 desks + gold board button, NOT a "board" category import pw from "playwright"; import { mkdirSync } from "fs"; const OUT = "/root/projects/bidaangmamamayan/tests/shots"; mkdirSync(OUT, { recursive: true }); const b = await pw.chromium.launch(); const page = await b.newPage({ viewport: { width: 1350, height: 950 } }); const errs = []; page.on("pageerror", (e) => errs.push("pageerror: " + e.message)); await page.goto("https://bidaangmamamayan.com/", { waitUntil: "domcontentloaded", timeout: 30000 }); await page.waitForTimeout(3500); await page.screenshot({ path: OUT + "/live-front.png" }); // 1. In Pictures band const photos = await page.locator(".photos-band .photo").count(); const photoCred = await page.locator(".photos-band").textContent().catch(() => ""); // 2. board band on the front page const boardBand = await page.locator("#board-band").count(); const boardForm = await page.locator("#board-band form").count(); // 3. nav const navs = await page.locator(".navstrip a").allTextContents(); console.log(JSON.stringify({ photos, photosHaveCredits: /Public domain/.test(photoCred || ""), photosHaveOfficialSource: /official/i.test(photoCred || ""), boardBandOnFront: boardBand, boardHasForm: boardForm, navButtons: navs, boardAsCategory: navs.some((n) => /thank you/i.test(n)), // board IS in nav but as gold button, not a desk pageErrors: errs, }, null, 2)); // scroll to board band + screenshot if (boardBand) await page.locator("#board-band").scrollIntoViewIfNeeded().catch(() => {}); await page.waitForTimeout(400); await page.screenshot({ path: OUT + "/live-board-band.png" }); // scroll to photos + screenshot await page.locator(".photos-band").scrollIntoViewIfNeeded().catch(() => {}); await page.waitForTimeout(600); await page.screenshot({ path: OUT + "/live-in-pictures.png" }); await b.close(); console.log(errs.length ? "LIVE ERRORS: " + errs.join("; ") : "LIVE CLEAN");