Format authored monorepo code with pinned language formatters

This commit is contained in:
Timothy J. Aveni
2026-09-15 15:23:24 -07:00
parent a174faea5c
commit 00fc2b9ff1
69 changed files with 5135 additions and 3306 deletions
+64 -26
View File
@@ -3,43 +3,81 @@ import assert from "node:assert/strict";
import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import {execFile as callback} from "node:child_process";
import {promisify} from "node:util";
import {authoringWorklist} from "../src/capability-language/authoring-worklist.js";
import {checkRecordName} from "../src/capability-language/authoring-check.js";
import {checkerIdentity, snapshotCommit} from "../src/capability-language/checked-build.js";
import { execFile as callback } from "node:child_process";
import { promisify } from "node:util";
import { authoringWorklist } from "../src/capability-language/authoring-worklist.js";
import { checkRecordName } from "../src/capability-language/authoring-check.js";
import { checkerIdentity, snapshotCommit } from "../src/capability-language/checked-build.js";
const execFile = promisify(callback);
test("worklist grows and clears from current source, dependency and checker observations", async context => {
test("worklist grows and clears from current source, dependency and checker observations", async (context) => {
const workbench = await fs.mkdtemp(path.join(os.tmpdir(), "qx-worklist-test-"));
context.after(() => fs.rm(workbench, {recursive: true, force: true}));
const root = path.join(workbench, "root"), provider = path.join(workbench, "resources/Base");
await fs.mkdir(root); await fs.mkdir(provider, {recursive: true});
await fs.mkdir(path.join(workbench, ".quixos/checks"), {recursive: true});
context.after(() => fs.rm(workbench, { recursive: true, force: true }));
const root = path.join(workbench, "root"),
provider = path.join(workbench, "resources/Base");
await fs.mkdir(root);
await fs.mkdir(provider, { recursive: true });
await fs.mkdir(path.join(workbench, ".quixos/checks"), { recursive: true });
const header = `quixos-lock version 1 { quixos source { repository "https://example.test/quixos"; commit "${"a".repeat(40)}"; }`;
for (const directory of [root, provider]) await execFile("jj", ["git", "init", "--colocate", directory]);
await fs.writeFile(path.join(provider, "interface.qx"), 'interface Base id "interface:base" revision "interface:base@1" {}');
await fs.writeFile(
path.join(provider, "interface.qx"),
'interface Base id "interface:base" revision "interface:base@1" {}',
);
await fs.writeFile(path.join(provider, "quixos.lock"), `${header} }`);
const baseCommit = await snapshotCommit(provider);
await fs.writeFile(path.join(root, "workspace.qx"), `workspace Test id "workspace:test" revision "workspace:test@1" commit "${"b".repeat(40)}" { import interface Base; }`);
await fs.writeFile(path.join(root, "quixos.lock"), `${header} interface Base source { repository "https://example.test/base"; commit "${baseCommit}"; } }`);
await fs.writeFile(
path.join(root, "workspace.qx"),
`workspace Test id "workspace:test" revision "workspace:test@1" commit "${"b".repeat(40)}" { import interface Base; }`,
);
await fs.writeFile(
path.join(root, "quixos.lock"),
`${header} interface Base source { repository "https://example.test/base"; commit "${baseCommit}"; } }`,
);
const rootCommit = await snapshotCommit(root);
await fs.writeFile(path.join(workbench, ".quixos/resource-graph.json"), JSON.stringify({resources: [
{kind: "interface", directory: provider, source: {resolver: "git", repository: "https://example.test/base", commit: baseCommit}},
]}));
assert.equal((await authoringWorklist(workbench)).worklist.filter(entry => entry.phase === "unchecked").length, 2);
const remember = (directory: string, commit: string, checker = checkerIdentity()) => fs.writeFile(
path.join(workbench, ".quixos/checks", checkRecordName(directory)), JSON.stringify({commit, checker, phase: "checked", blockers: []}));
await remember("root", rootCommit); await remember("resources/Base", baseCommit);
await fs.writeFile(
path.join(workbench, ".quixos/resource-graph.json"),
JSON.stringify({
resources: [
{
kind: "interface",
directory: provider,
source: { resolver: "git", repository: "https://example.test/base", commit: baseCommit },
},
],
}),
);
assert.equal((await authoringWorklist(workbench)).worklist.filter((entry) => entry.phase === "unchecked").length, 2);
const remember = (directory: string, commit: string, checker = checkerIdentity()) =>
fs.writeFile(
path.join(workbench, ".quixos/checks", checkRecordName(directory)),
JSON.stringify({ commit, checker, phase: "checked", blockers: [] }),
);
await remember("root", rootCommit);
await remember("resources/Base", baseCommit);
assert.deepEqual((await authoringWorklist(workbench)).worklist, []);
await fs.writeFile(path.join(provider, "interface.qx"), "interface broken {{{");
const broken = await authoringWorklist(workbench);
assert.ok(broken.worklist.some(entry => entry.directory === "resources/Base" && entry.phase === "syntax" && /historical/.test(entry.message)));
assert.ok(broken.worklist.some(entry => entry.directory === "root" && entry.phase === "dependency"));
await fs.writeFile(path.join(provider, "interface.qx"), 'interface Base id "interface:base" revision "interface:base@1" {}');
assert.ok(
broken.worklist.some(
(entry) => entry.directory === "resources/Base" && entry.phase === "syntax" && /historical/.test(entry.message),
),
);
assert.ok(broken.worklist.some((entry) => entry.directory === "root" && entry.phase === "dependency"));
await fs.writeFile(
path.join(provider, "interface.qx"),
'interface Base id "interface:base" revision "interface:base@1" {}',
);
assert.deepEqual((await authoringWorklist(workbench)).worklist, []);
await remember("resources/Base", baseCommit, "old-checker");
assert.ok((await authoringWorklist(workbench)).worklist.some(entry => /checker changed/.test(entry.message)));
await fs.writeFile(path.join(workbench, ".quixos/checks", checkRecordName("resources/Base")), JSON.stringify({phase: "publication", blockers: ["source retention unavailable"]}));
assert.ok((await authoringWorklist(workbench)).worklist.some(entry => entry.phase === "publication" && /source retention/.test(entry.message)));
assert.ok((await authoringWorklist(workbench)).worklist.some((entry) => /checker changed/.test(entry.message)));
await fs.writeFile(
path.join(workbench, ".quixos/checks", checkRecordName("resources/Base")),
JSON.stringify({ phase: "publication", blockers: ["source retention unavailable"] }),
);
assert.ok(
(await authoringWorklist(workbench)).worklist.some(
(entry) => entry.phase === "publication" && /source retention/.test(entry.message),
),
);
});