13 lines
921 B
JavaScript
13 lines
921 B
JavaScript
/* Reproducible before/after comparison without changing the working tree. */
|
|
const {execFileSync,spawnSync}=require('node:child_process');
|
|
const {mkdtempSync,rmSync}=require('node:fs');
|
|
const {join}=require('node:path');
|
|
const {tmpdir}=require('node:os');
|
|
const baseline=mkdtempSync(join(tmpdir(),'ytplayer-bento-baseline-'));
|
|
try {
|
|
const archive=execFileSync('git',['archive',process.env.BENTO_BASE_COMMIT||'04b620e','frontend']);
|
|
execFileSync('tar',['-x','-C',baseline],{input:archive});
|
|
const run=env=>{const result=spawnSync('npx',['playwright','test','--config','playwright.bento.config.js','--workers','4'],{stdio:'inherit',env:{...process.env,...env}});if(result.status!==0)process.exitCode=result.status||1;return result.status===0;};
|
|
if(run({CAPTURE_BEFORE:'1',BENTO_BASELINE:join(baseline,'frontend')}))run({CAPTURE_BEFORE:'0',BENTO_BASELINE:''});
|
|
} finally {rmSync(baseline,{recursive:true,force:true});}
|