testRecordsReadBack

tcmts.cli.libraries.test.testRecordsReadBack · #hj77sg6m · term

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"]}}',
    ),
    {},
  );
}

uses