Format authored monorepo code with pinned language formatters
This commit is contained in:
@@ -3,10 +3,7 @@ import { mkdtemp, mkdir, rm, writeFile } from "node:fs/promises";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import test from "node:test";
|
||||
import {
|
||||
compileCapabilityResourceRepository,
|
||||
compileWorkspaceRepository,
|
||||
} from "../src/capability-language/index.js";
|
||||
import { compileCapabilityResourceRepository, compileWorkspaceRepository } from "../src/capability-language/index.js";
|
||||
|
||||
const quixosCommit = "1".repeat(40);
|
||||
const namedCommit = "2".repeat(40);
|
||||
@@ -28,31 +25,46 @@ test("workspace assembly resolves resource-owned dependencies recursively", asyn
|
||||
const named = path.join(directory, "named");
|
||||
const runtime = path.join(directory, "runtime");
|
||||
await Promise.all([mkdir(root), mkdir(named), mkdir(runtime)]);
|
||||
await writeFile(path.join(root, "quixos.lock"), lock(`package Runtime source {
|
||||
await writeFile(
|
||||
path.join(root, "quixos.lock"),
|
||||
lock(`package Runtime source {
|
||||
repository "https://example.test/package-runtime.git";
|
||||
commit "${packageCommit}";
|
||||
}`));
|
||||
await writeFile(path.join(root, "workspace.qx"), `workspace Test id "workspace:test" revision "workspace:test@1" commit "${"4".repeat(40)}" {
|
||||
}`),
|
||||
);
|
||||
await writeFile(
|
||||
path.join(root, "workspace.qx"),
|
||||
`workspace Test id "workspace:test" revision "workspace:test@1" commit "${"4".repeat(40)}" {
|
||||
atom Subject id "atom:subject";
|
||||
import package Runtime;
|
||||
}
|
||||
`);
|
||||
`,
|
||||
);
|
||||
await writeFile(path.join(named, "quixos.lock"), lock());
|
||||
await writeFile(path.join(named, "interface.qx"), `interface Named id "interface:named" revision "interface:named@1" {
|
||||
await writeFile(
|
||||
path.join(named, "interface.qx"),
|
||||
`interface Named id "interface:named" revision "interface:named@1" {
|
||||
value name id "member:named:name" : string {
|
||||
get id "operation:named:name:get";
|
||||
}
|
||||
}
|
||||
`);
|
||||
await writeFile(path.join(runtime, "quixos.lock"), lock(`interface Named source {
|
||||
`,
|
||||
);
|
||||
await writeFile(
|
||||
path.join(runtime, "quixos.lock"),
|
||||
lock(`interface Named source {
|
||||
repository "https://example.test/interface-named.git";
|
||||
commit "${namedCommit}";
|
||||
}`));
|
||||
await writeFile(path.join(runtime, "package.qx"), `import interface Named;
|
||||
}`),
|
||||
);
|
||||
await writeFile(
|
||||
path.join(runtime, "package.qx"),
|
||||
`import interface Named;
|
||||
package Runtime id "package:runtime" revision "package:runtime@1" {
|
||||
function describe id "export:runtime:describe" : interface-ref<Named> -> string;
|
||||
}
|
||||
`);
|
||||
`,
|
||||
);
|
||||
|
||||
const directories = new Map([
|
||||
[`interface\0https://example.test/interface-named.git\0${namedCommit}`, named],
|
||||
@@ -100,15 +112,21 @@ package Runtime id "package:runtime" revision "package:runtime@1" {
|
||||
test("resource repositories cannot own workspace Quixos selection policy", async (context) => {
|
||||
const directory = await mkdtemp(path.join(os.tmpdir(), "quixos-resource-policy-"));
|
||||
context.after(() => rm(directory, { recursive: true, force: true }));
|
||||
await writeFile(path.join(directory, "quixos.lock"), `quixos-lock version 1 {
|
||||
await writeFile(
|
||||
path.join(directory, "quixos.lock"),
|
||||
`quixos-lock version 1 {
|
||||
quixos source {
|
||||
repository "https://example.test/quixos.git";
|
||||
policy track-development;
|
||||
ref "dev/alice/main";
|
||||
commit "${quixosCommit}";
|
||||
}
|
||||
}`);
|
||||
await writeFile(path.join(directory, "package.qx"), `package Runtime id "package:runtime" revision "package:runtime@1" { }\n`);
|
||||
}`,
|
||||
);
|
||||
await writeFile(
|
||||
path.join(directory, "package.qx"),
|
||||
`package Runtime id "package:runtime" revision "package:runtime@1" { }\n`,
|
||||
);
|
||||
|
||||
await assert.rejects(
|
||||
compileCapabilityResourceRepository({
|
||||
@@ -131,19 +149,28 @@ test("resource manifests cannot hide lock dependencies", async (context) => {
|
||||
const root = path.join(directory, "root");
|
||||
const runtime = path.join(directory, "runtime");
|
||||
await Promise.all([mkdir(root), mkdir(runtime)]);
|
||||
await writeFile(path.join(root, "quixos.lock"), lock(`package Runtime source {
|
||||
await writeFile(
|
||||
path.join(root, "quixos.lock"),
|
||||
lock(`package Runtime source {
|
||||
repository "https://example.test/package-runtime.git";
|
||||
commit "${packageCommit}";
|
||||
}`));
|
||||
await writeFile(path.join(root, "workspace.qx"), `workspace Test id "workspace:test" revision "workspace:test@1" commit "${"4".repeat(40)}" {
|
||||
}`),
|
||||
);
|
||||
await writeFile(
|
||||
path.join(root, "workspace.qx"),
|
||||
`workspace Test id "workspace:test" revision "workspace:test@1" commit "${"4".repeat(40)}" {
|
||||
atom Subject id "atom:subject";
|
||||
import package Runtime;
|
||||
}
|
||||
`);
|
||||
`,
|
||||
);
|
||||
await writeFile(path.join(runtime, "quixos.lock"), lock());
|
||||
await writeFile(path.join(runtime, "package.qx"), `import interface Hidden;
|
||||
await writeFile(
|
||||
path.join(runtime, "package.qx"),
|
||||
`import interface Hidden;
|
||||
package Runtime id "package:runtime" revision "package:runtime@1" { }
|
||||
`);
|
||||
`,
|
||||
);
|
||||
|
||||
await assert.rejects(
|
||||
compileWorkspaceRepository({
|
||||
@@ -160,19 +187,28 @@ test("workspace assembly must satisfy nominal external interfaces", async (conte
|
||||
const root = path.join(directory, "root");
|
||||
const runtime = path.join(directory, "runtime");
|
||||
await Promise.all([mkdir(root), mkdir(runtime)]);
|
||||
await writeFile(path.join(root, "quixos.lock"), lock(`package Runtime source {
|
||||
await writeFile(
|
||||
path.join(root, "quixos.lock"),
|
||||
lock(`package Runtime source {
|
||||
repository "https://example.test/package-runtime.git";
|
||||
commit "${packageCommit}";
|
||||
}`));
|
||||
await writeFile(path.join(root, "workspace.qx"), `workspace Test id "workspace:test" revision "workspace:test@1" commit "${"4".repeat(40)}" {
|
||||
}`),
|
||||
);
|
||||
await writeFile(
|
||||
path.join(root, "workspace.qx"),
|
||||
`workspace Test id "workspace:test" revision "workspace:test@1" commit "${"4".repeat(40)}" {
|
||||
atom Subject id "atom:subject";
|
||||
import package Runtime;
|
||||
}
|
||||
`);
|
||||
`,
|
||||
);
|
||||
await writeFile(path.join(runtime, "quixos.lock"), lock());
|
||||
await writeFile(path.join(runtime, "package.qx"), `external interface Named revision "interface:named@1";
|
||||
await writeFile(
|
||||
path.join(runtime, "package.qx"),
|
||||
`external interface Named revision "interface:named@1";
|
||||
package Runtime id "package:runtime" revision "package:runtime@1" { }
|
||||
`);
|
||||
`,
|
||||
);
|
||||
|
||||
await assert.rejects(
|
||||
compileWorkspaceRepository({
|
||||
|
||||
Reference in New Issue
Block a user