testHiddenFilesKeepTheirDot

tcmts.cli.files.testHiddenFilesKeepTheirDot · #t6r4jiu7 · term

A file's format is its extension (none for a Dockerfile), after a dot for a hidden file, so it's written back with it; what reads a format sees it without the dot, and a file that isn't hidden is kept as it always was.

import type { CodebaseCore } from "#codebase/tcmts/cli/codebase";
import { fileDefinition, fileName, formatOf } from "#codebase/tcmts/cli/files";
import { assetFormat } from "#codebase/tcmts/cli/mirror";
import assert from "node:assert/strict";

export const testHiddenFilesKeepTheirDot = () => {
  assert.deepEqual(
    [
      "Dockerfile",
      "x/Makefile",
      ".gitignore",
      ".mcp.json",
      ".env.example",
      "guide.md",
      "logo.PNG",
    ].map(assetFormat),
    ["", "", ".", ".json", ".example", "md", "png"],
  );
  const def = (name: string, format: string, text: string) =>
    fileDefinition({} as CodebaseCore, name, format, Buffer.from(text)).def;
  const docker = def("deploy.Dockerfile", "", "FROM node\n");
  assert.deepEqual(JSON.parse(docker.ir), ["File", "", "FROM node\n"]);
  assert.equal(docker.signature, "text");
  assert.equal(formatOf(docker), "");
  assert.equal(fileName("Dockerfile", docker), "Dockerfile");
  const ignore = def("app.gitignore", ".", "dist/\n");
  assert.deepEqual(JSON.parse(ignore.ir), ["File", ".", "dist/\n"]);
  assert.equal(ignore.signature, "text");
  assert.equal(formatOf(ignore), "");
  assert.equal(fileName("gitignore", ignore), ".gitignore");
  const mcp = def("app.mcp", ".json", "{}\n");
  assert.equal(mcp.signature, "json");
  assert.equal(formatOf(mcp), "json");
  assert.equal(fileName("mcp", mcp), ".mcp.json");
  const page = def("docs.guide", "md", "# Guide\n");
  assert.deepEqual(JSON.parse(page.ir), ["File", "md", "# Guide\n"]);
  assert.equal(fileName("guide", page), "guide.md");
}

uses