/* 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});}