Files
hwacheon-network-viewer/tests/launch-failure.cjs

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.');