qa(evidence): live production verification report (#2)
This commit was merged in pull request #2.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
// Browser-style trace: visit live canvas, capture every network request, and
|
||||
// classify whether EA2 endpoints are actually being hit with real responses.
|
||||
import { chromium } from "playwright";
|
||||
|
||||
const URL = "https://canvas.flow-master.ai/";
|
||||
const calls = [];
|
||||
|
||||
const b = await chromium.launch({ headless: true });
|
||||
const ctx = await b.newContext({ viewport: { width: 1440, height: 900 } });
|
||||
const p = await ctx.newPage();
|
||||
|
||||
p.on("response", async (res) => {
|
||||
const u = res.url();
|
||||
if (!u.includes("/api/")) return;
|
||||
calls.push({
|
||||
url: u,
|
||||
status: res.status(),
|
||||
ts: Date.now(),
|
||||
});
|
||||
});
|
||||
|
||||
await p.goto(URL, { waitUntil: "domcontentloaded" });
|
||||
await p.waitForTimeout(8000);
|
||||
|
||||
const total = calls.length;
|
||||
const byStatus = {};
|
||||
const byEndpoint = {};
|
||||
for (const c of calls) {
|
||||
byStatus[c.status] = (byStatus[c.status] || 0) + 1;
|
||||
const path = c.url.replace(/https?:\/\/[^/]+/, "").split("?")[0];
|
||||
const bucket = path.split("/").slice(0, 5).join("/");
|
||||
byEndpoint[bucket] = (byEndpoint[bucket] || 0) + 1;
|
||||
}
|
||||
|
||||
console.log("\n=== EA2 wiring trace ===");
|
||||
console.log("total /api/ calls in 8s:", total);
|
||||
console.log("by status:", JSON.stringify(byStatus));
|
||||
console.log("by endpoint:");
|
||||
for (const [ep, n] of Object.entries(byEndpoint).sort((a, b) => b[1] - a[1])) {
|
||||
console.log(` ${n}\t${ep}`);
|
||||
}
|
||||
|
||||
const ea2 = calls.filter((c) => c.url.includes("/api/ea2/"));
|
||||
const auth = calls.filter((c) => c.url.includes("/api/v1/auth/"));
|
||||
console.log(`\nEA2 calls: ${ea2.length} (${ea2.filter((c) => c.status === 200).length} 200)`);
|
||||
console.log(`auth calls: ${auth.length} (${auth.filter((c) => c.status === 200).length} 200)`);
|
||||
|
||||
await b.close();
|
||||
Reference in New Issue
Block a user