testRecordsReadBack
a record reads back as written, and what isn't an entry is left out
import { parseRecord, recordText } from "#codebase/tcmts/cli/libraries"; import assert from "node:assert/strict"; export const testRecordsReadBack = () => { const entries = { shapes: { namespace: "b".repeat(8), sources: ["../shapes"] }, geo: { namespace: "a".repeat(8), release: "geo@1.2.0", sources: ["https://alice.dev", "https://mirror.example"], }, }; const text = recordText(entries); assert.deepEqual(parseRecord(text), entries); // (by name: a merge or a diff reads one library's lines together) assert.ok(text.indexOf('"geo"') < text.indexOf('"shapes"')); assert.deepEqual(parseRecord("not json"), {}); assert.deepEqual(parseRecord("[1]"), {}); assert.deepEqual( parseRecord( '{"geo": {"sources": ["x"]}, "none": {"namespace": "n", "sources": []}, "bad-name": {"namespace": "n", "sources": ["x"]}}', ), {}, ); }