test: reproduce stale browser validation result (#4)

This commit is contained in:
dekim2 committed 2026-10-27 17:58:03 +09:00
1 parent bc9bb05900
commit 7bd2148243
1 file changed
+20
+20
View File
@@ -0,0 +1,20 @@
// Reproduce an unavailable-browser failure without requiring a browser/server.
const assert=require('node:assert/strict');
const fs=require('node:fs');
const path=require('node:path');
const {spawnSync}=require('node:child_process');
const folder=path.resolve(__dirname,'../test-results/launch-failure-case');
fs.mkdirSync(folder,{recursive:true});
const result=path.join(folder,'ui-validation.json');
fs.writeFileSync(result,JSON.stringify({status:'passed',previous_run:true}));
const run=spawnSync(process.execPath,[path.join(__dirname,'viewer.cjs')],{
env:{...process.env,PLAYWRIGHT_CHANNEL:'intentionally-invalid-channel',VIEWER_RESULTS_DIR:folder},
encoding:'utf8',timeout:20000
});
if(run.error)throw run.error;
assert.equal(run.status,1,run.stderr||run.stdout);
const report=JSON.parse(fs.readFileSync(result,'utf8'));
assert.equal(report.status,'failed');
assert.match(report.error,/intentionally-invalid-channel/);
assert.equal(report.previous_run,undefined);
console.log('PASS: browser launch failure returns 1 and overwrites stale success JSON.');