Fail public deploy QA on runtime errors
This commit is contained in:
@@ -13,9 +13,21 @@ const browser = await chromium.launch({ headless: true });
|
||||
try {
|
||||
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', 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))
|
||||
);
|
||||
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(`Captured ${screenshotPath}`);
|
||||
|
||||
Reference in New Issue
Block a user