Files
ytplayer/scripts/test-bento-theme.js

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