Fail public deploy QA on runtime errors

This commit is contained in:
2026-07-05 17:10:58 +09:00
parent 2864654cb8
commit 1ddc8a9982

View File

@@ -13,9 +13,21 @@ const browser = await chromium.launch({ headless: true });
try { try {
const page = await browser.newPage({ viewport: { width: 1280, height: 720 } }); const page = await browser.newPage({ viewport: { width: 1280, height: 720 } });
const consoleMessages = []; const consoleMessages = [];
const pageErrors = [];
const requestFailures = [];
page.on('console', (message) => { page.on('console', (message) => {
consoleMessages.push({ type: message.type(), text: message.text() }); consoleMessages.push({ type: message.type(), text: message.text() });
}); });
page.on('pageerror', (error) => {
pageErrors.push(error.message);
});
page.on('requestfailed', (request) => {
requestFailures.push({
url: request.url(),
type: request.resourceType(),
failure: request.failure()?.errorText ?? 'unknown'
});
});
await page.goto(targetUrl, { waitUntil: 'domcontentloaded', timeout: 90000 }); await page.goto(targetUrl, { waitUntil: 'domcontentloaded', timeout: 90000 });
await page.waitForFunction(() => document.querySelector('canvas') !== null, undefined, { timeout: 90000 }); await page.waitForFunction(() => document.querySelector('canvas') !== null, undefined, { timeout: 90000 });
@@ -50,6 +62,8 @@ try {
(message) => message.type === 'error' || (isWarning(message.type) && relevantLogPattern.test(message.text)) (message) => message.type === 'error' || (isWarning(message.type) && relevantLogPattern.test(message.text))
); );
assert(relevantLogs.length === 0, `Unexpected public deploy console issues: ${JSON.stringify(relevantLogs, null, 2)}`); assert(relevantLogs.length === 0, `Unexpected public deploy console issues: ${JSON.stringify(relevantLogs, null, 2)}`);
assert(pageErrors.length === 0, `Unexpected public deploy page errors: ${JSON.stringify(pageErrors, null, 2)}`);
assert(requestFailures.length === 0, `Unexpected public deploy request failures: ${JSON.stringify(requestFailures, null, 2)}`);
console.log(`Verified public deploy at ${targetUrl}`); console.log(`Verified public deploy at ${targetUrl}`);
console.log(`Captured ${screenshotPath}`); console.log(`Captured ${screenshotPath}`);