Files
united-workforce/packages/workflow/__tests__/hash.test.ts
T
xiaoju 3467b772e6 refactor: named exports (run + descriptor), remove build pipeline
- Bundle contract: export const run + export const descriptor (no default export)
- add only accepts .esm.js, extracts descriptor via dynamic import → .yaml
- Removed: build-pipeline, generate-types, json-schema-to-ts
- Worker loads mod.run instead of mod.default
- Biome: no more noDefaultExport overrides for bundles
- 62 tests pass, biome clean

Closes #8
小橘 <xiaoju@shazhou.work>
2026-05-06 06:39:15 +00:00

27 lines
937 B
TypeScript

import { describe, expect, test } from "bun:test";
import { decodeCrockfordToUint64 } from "../src/base32.js";
import { hashWorkflowBundleBytes } from "../src/hash.js";
describe("hashWorkflowBundleBytes", () => {
test("matches XXH64 reference for empty input", () => {
const encoder = new TextEncoder();
const digest = hashWorkflowBundleBytes(encoder.encode(""));
const decoded = decodeCrockfordToUint64(digest);
expect(decoded.ok).toBe(true);
if (decoded.ok) {
expect(decoded.value).toBe(0xef46_db37_51d8_e999n);
}
});
test("stable for identical content", () => {
const encoder = new TextEncoder();
const data = encoder.encode(
`export const descriptor = { description: "x", roles: {} };
export const run = async function* (input) { return { returnCode: 0, summary: input.prompt }; }
`,
);
expect(hashWorkflowBundleBytes(data)).toBe(hashWorkflowBundleBytes(data));
});
});