testHiddenFilesKeepTheirDot
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"); }