Fail release QA on runtime errors

This commit is contained in:
2026-07-05 17:16:25 +09:00
parent 1ddc8a9982
commit 1317c43dd3

View File

@@ -17,9 +17,21 @@ try {
browser = await chromium.launch({ headless: true });
const page = await browser.newPage({ viewport: { width: 1280, height: 720 } });
const consoleMessages = [];
const pageErrors = [];
const requestFailures = [];
page.on('console', (message) => {
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' });
await page.evaluate(() => window.localStorage.clear());
@@ -168,7 +180,10 @@ try {
);
const errors = consoleMessages.filter((message) => message.type === 'error');
const blockingRequestFailures = requestFailures.filter((request) => request.failure !== 'net::ERR_ABORTED');
assert(errors.length === 0, `Unexpected browser console errors: ${JSON.stringify(errors)}`);
assert(pageErrors.length === 0, `Unexpected browser runtime errors: ${JSON.stringify(pageErrors)}`);
assert(blockingRequestFailures.length === 0, `Unexpected browser request failures: ${JSON.stringify(blockingRequestFailures)}`);
console.log(`Verified release-candidate user flow at ${targetUrl}`);
} finally {