Files
kuber/tests/shared/build-protocol.test.ts
T
2026-09-03 11:28:30 +07:00

33 lines
1003 B
TypeScript

import { describe, expect, test } from "bun:test";
import {
assertSha256Digest,
BUILD_PROTOCOL_VERSION,
isSha256Digest,
type BuildRequest,
} from "../../shared/build-protocol";
describe("build protocol", () => {
test("exposes a serializable typed request", () => {
const request: BuildRequest = {
version: BUILD_PROTOCOL_VERSION,
id: "build-1",
project: "demo",
service: "web",
spec: {
architecture: "arm64",
image: "registry.example/demo/web:latest",
context: ".",
buildArgs: ["NODE_ENV=production"],
workspace: `sha256:${"a".repeat(64)}`,
},
};
expect(JSON.parse(JSON.stringify(request))).toEqual(request);
});
test("strictly validates lowercase sha256 digests", () => {
expect(isSha256Digest(`sha256:${"f".repeat(64)}`)).toBe(true);
expect(isSha256Digest(`sha256:${"F".repeat(64)}`)).toBe(false);
expect(() => assertSha256Digest("sha256:short")).toThrow("Invalid SHA-256");
});
});