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