feat: v2
This commit is contained in:
@@ -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");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user