Build composable Camino packages with explicit type and source dependencies

This commit is contained in:
Timothy J. Aveni
2026-09-22 14:42:54 -07:00
parent 7173751f37
commit 82a4542746
30 changed files with 736 additions and 420 deletions
+19
View File
@@ -154,3 +154,22 @@ test("transaction process services do not promise generated TypeScript modules",
throw Error("No adapter claimed");
});
});
test("a remote export group in a mixed package witnesses only its own adapter", async () => {
const { asyncObjectPlan } = await import("./async-fixture.js");
const { expectedArtifactReceipt } = await import("../src/execution-world/receipts.js");
const plan = await asyncObjectPlan();
const fixture = buildArtifactFixture(plan, "async:controller-runtime@1");
const pkg = plan.definition.packages.find((entry) => entry.revision === fixture.manifest.packageRevisionId)!;
fixture.manifest.implementations = fixture.manifest.implementations.filter(
(entry) => entry.target === "server" && entry.compatibility === "quixos-js-module-v1",
);
for (const implementation of fixture.manifest.implementations)
implementation.exports = implementation.exports.filter((id) =>
pkg.exports.some((entry) => entry.id === id && entry.execution.kind === "remote"),
);
assert.deepEqual(
expectedArtifactReceipt(plan, fixture.manifest, "a".repeat(64)).receipt.generated.map((file) => file.path),
["share/quixos/generated/remote.ts"],
);
});