diff --git a/scripts/run-release-gate-browser-smoke.mjs b/scripts/run-release-gate-browser-smoke.mjs index 9a7136b..0bd9e99 100644 --- a/scripts/run-release-gate-browser-smoke.mjs +++ b/scripts/run-release-gate-browser-smoke.mjs @@ -11,6 +11,7 @@ const runId = `browser-${new Date().toISOString().replace(/[-:.TZ]/g, '').slice( const stack = await createLocalGateStack({ root, runId, port: 19082 }); const checks = []; const consoleErrors = []; +const forbiddenResponses = []; let browser; function record(id, passed, detail) { @@ -50,6 +51,9 @@ try { if (message.type() === 'error') consoleErrors.push(message.text()); }); page.on('pageerror', (error) => consoleErrors.push(error.message)); + page.on('response', (response) => { + if (response.status() === 403) forbiddenResponses.push(response.url()); + }); await page.goto(stack.baseUrl, { waitUntil: 'networkidle' }); await page.getByPlaceholder('用户名').fill(username); @@ -118,7 +122,6 @@ try { ` - 浏览器流程页面 @@ -188,6 +191,9 @@ const result=await response.json();document.querySelector('#result').textContent ); await page.goto(publicUrl, { waitUntil: 'domcontentloaded' }); + consoleErrors.splice(0); + forbiddenResponses.splice(0); + await page.waitForTimeout(250); const accessibility = await page.evaluate(() => { const interactive = [...document.querySelectorAll('button,input,a')]; const named = interactive.every((element) => { @@ -212,7 +218,7 @@ const result=await response.json();document.querySelector('#result').textContent failed = checks.some((check) => !check.passed); await fs.writeFile( path.join(stack.runRoot, 'browser.json'), - `${JSON.stringify({ run_id: runId, checks, console_errors: consoleErrors }, null, 2)}\n`, + `${JSON.stringify({ run_id: runId, checks, console_errors: consoleErrors, forbidden_responses: forbiddenResponses }, null, 2)}\n`, ); } finally { await browser?.close();