This commit is contained in:
2026-09-03 11:28:30 +07:00 Unverified
parent 26c2d0f015
commit 82d0fe3e0d
93 changed files with 19237 additions and 1285 deletions
+34
View File
@@ -0,0 +1,34 @@
import { describe, expect, test } from "bun:test";
import { renderResources } from "../../lib/render";
describe("side-effect-free export rendering", () => {
test("resolves build images and renders locally without provider calls", async () => {
const paths: string[] = [];
const resources = await renderResources(
"shop",
{ services: { web: { build: "." } } },
process.cwd(),
{
request: async <T>(path: string) => {
paths.push(path);
return { reference: "registry/web@sha256:immutable" } as T;
},
},
);
const deployment = resources.find(
(resource) => resource.kind === "Deployment",
);
expect(paths).toEqual(["/images/resolve"]);
expect((deployment as any)?.spec?.template.spec.containers[0].image).toBe(
"registry/web@sha256:immutable",
);
});
test("clearly rejects exports requiring generated credentials", async () => {
await expect(
renderResources("shop", {
services: { web: { image: "app", volumes: ["postgresql:app"] } },
}),
).rejects.toThrow("Export is side-effect-free");
});
});