// node --test compositions/compose.test.mjs (the committed composition.json files are what compose.ts writes) import assert from "node:assert/strict"; import { execFileSync } from "node:child_process"; import { readFileSync } from "node:fs"; import { test } from "node:test"; const dir = new URL("./", import.meta.url); for (const name of ["socialweb-computer-cicd", "socialweb-computer-vm-mcp"]) { test(`${name}.compose.ts writes ${name}.composition.json`, () => { const out = execFileSync(process.execPath, [`${name}.compose.ts`], { cwd: dir, encoding: "utf8" }); assert.equal(out, readFileSync(new URL(`${name}.composition.json`, dir), "utf8")); }); }