import { describe, expect, test } from "bun:test"; import { buildExportManifest } from "./build-manifest"; describe("buildExportManifest", () => { test("builds manifest with required fields and checksums", () => { const exportedAt = new Date("2026-04-24T10:00:00.000Z"); const cutoffAt = new Date("2026-04-24T09:00:00.000Z"); const manifest = buildExportManifest({ schemaVersion: 1, userId: 123, maskPolicy: "masked", exportedAt, exportCutoffAt: cutoffAt, stats: { dataRows: 10, files: 1, bytes: 1024, }, dataChecksums: [ { file: "data/user.json", sha256: "sha256-user" }, { file: "data/media-assets.json", sha256: "sha256-media" }, ], fileChecksums: [{ file: "files/a.webp", sha256: "sha256-file-a" }], }); expect(manifest).toEqual({ schemaVersion: 1, exportedAt: exportedAt.toISOString(), exportCutoffAt: cutoffAt.toISOString(), userId: 123, maskPolicy: "masked", stats: { dataRows: 10, files: 1, bytes: 1024, }, checksums: { data: [ { file: "data/user.json", sha256: "sha256-user" }, { file: "data/media-assets.json", sha256: "sha256-media" }, ], files: [{ file: "files/a.webp", sha256: "sha256-file-a" }], }, }); }); });