testMountsAndRecords

tcmts.cli.libraries.test.testMountsAndRecords · #y6k5rwvg · term

a library is mounted in the project's root namespace, and its record is beside it

import { defaultMount, projectRoot, recordFor, within } from "#codebase/tcmts/cli/libraries";
import assert from "node:assert/strict";

export const testMountsAndRecords = () => {
  assert.equal(projectRoot(["tcmts.cli.main", "tcmts.README"]), "tcmts");
  assert.equal(projectRoot(["a.x", "b.y"]), "");
  assert.equal(projectRoot(["square"]), "");
  assert.equal(defaultMount(["tcmts.cli.main"], "geo"), "tcmts.lib.geo");
  assert.equal(defaultMount(["a.x", "b.y"], "geo"), "lib.geo");
  // (a record at the top doesn't make another top namespace)
  assert.equal(defaultMount(["app.main", "libraries"], "geo"), "app.lib.geo");
  // (nor do the libraries mounted already: a codebase holding only lib.react has no root namespace)
  assert.equal(
    defaultMount(["lib.react.Pages", "lib.react.match"], "server", ["lib.react"]),
    "lib.server",
  );
  assert.equal(
    defaultMount(["lib.react.Pages", "lib.libraries", "lib.trust"], "trust", ["lib.react"]),
    "lib.trust",
  );
  assert.equal(
    defaultMount(["app.main", "app.lib.react.Pages"], "server", ["app.lib.react"]),
    "app.lib.server",
  );
  assert.equal(recordFor("tcmts.lib.geo"), "tcmts.lib.libraries");
  assert.equal(recordFor("geo"), "libraries");
  assert.ok(within("tcmts.lib.geo", "tcmts.lib.geo"));
  assert.ok(within("tcmts.lib.geo.area", "tcmts.lib.geo"));
  assert.ok(!within("tcmts.lib.geography", "tcmts.lib.geo"));
}

uses