import '../common/index.mjs'; import * as fixtures from '../common/fixtures.mjs'; import * as snapshot from '../common/assertSnapshot.js'; import { basename } from 'node:path'; import { describe, it } from 'node:test'; describe('eval output', { concurrency: true }, () => { function normalize(str) { return str.replaceAll(snapshot.replaceWindowsPaths(process.cwd()), '') .replaceAll(/\d+:\d+/g, '*:*'); } const defaultTransform = snapshot.transform( normalize, snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, snapshot.replaceNodeVersion, removeStackTraces, filterEmptyLines, generalizeProcessName, ); function removeStackTraces(output) { return output.replaceAll(/^ *at .+$/gm, ''); } function filterEmptyLines(output) { return output.replaceAll(/^\s*$/gm, ''); } function generalizeProcessName(output) { const baseName = basename(process.argv0 || 'node', '.exe'); return output.replaceAll(`${baseName} --`, '* --'); } const tests = [ { name: 'eval/eval_messages.js' }, { name: 'eval/stdin_messages.js' }, { name: 'eval/stdin_typescript.js' }, { name: 'eval/eval_typescript.js' }, ]; for (const { name } of tests) { it(name, async () => { await snapshot.spawnAndAssert(fixtures.path(name), defaultTransform); }); } });