Fail public deploy QA on runtime errors
This commit is contained in:
@@ -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}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user