Fail release QA on runtime errors
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user