#!/usr/bin/env node import { spawn } from 'node:child_process'; import { access } from 'node:fs/promises'; import { resolve } from 'node:path'; const repositoryRoot = process.cwd(); const tracePath = resolve(repositoryRoot, 'test-results/runtime-budget-trace.v1.json'); const runNode = (args) => new Promise((resolveRun, rejectRun) => { const child = spawn(process.execPath, args, { cwd: repositoryRoot, env: process.env, stdio: 'inherit', }); child.once('error', rejectRun); child.once('exit', (code, signal) => { if (code === 0) resolveRun(); else rejectRun(new Error(`Command failed${signal === null ? ` with exit code ${code}` : ` from signal ${signal}`}.`)); }); }); await runNode([ resolve(repositoryRoot, 'node_modules/@playwright/test/cli.js'), 'test', 'tests/performance/runtime-budget-trace.spec.ts', '--project=runtime-budget-desktop', '--workers=1', ]); await access(tracePath); await runNode([ resolve(repositoryRoot, 'scripts/check-bundle-budgets.mjs'), 'dist', '--runtime-trace', tracePath, ]);