21 lines
1.0 KiB
JavaScript
21 lines
1.0 KiB
JavaScript
// 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.');
|