import { describe, expect, it } from "vitest"; import { createToolcraftMediaResourceRef, decodeToolcraftDataUrl, } from "./media-resource-ref"; describe("Toolcraft binary media resource refs", () => { it("creates deterministic kind-scoped refs from bytes", () => { const bytes = new Uint8Array([1, 2, 3]); expect(createToolcraftMediaResourceRef("image", bytes)).toMatch( /^media:image:sha256:[0-9a-f]{64}$/u, ); expect(createToolcraftMediaResourceRef("image", bytes)).toBe( createToolcraftMediaResourceRef("image", new Uint8Array(bytes)), ); expect(createToolcraftMediaResourceRef("file", bytes)).not.toBe( createToolcraftMediaResourceRef("image", bytes), ); }); it("decodes base64 and percent-encoded data urls", () => { expect([...decodeToolcraftDataUrl("data:text/plain;base64,SGk=")]).toEqual([ 72, 105, ]); expect( new TextDecoder().decode( decodeToolcraftDataUrl("data:text/plain,hello%20world"), ), ).toBe("hello world"); }); });