38 lines · 1.2 KB · TypeScript
RawDownload
import { describe, expect, it } from "vitest"; import { inferImageExtension, parseBase64DataUrl } from "./imageMime.ts"; describe("imageMime", () => {  it("parses base64 data URL with mime type", () => {    expect(parseBase64DataUrl("data:image/png;base64,SGVsbG8=")).toEqual({      mimeType: "image/png",      base64: "SGVsbG8=",    });  });   it("parses base64 data URL with mime parameters", () => {    expect(parseBase64DataUrl("data:image/png;charset=utf-8;base64,SGVsbG8=")).toEqual({      mimeType: "image/png",      base64: "SGVsbG8=",    });  });   it("rejects non-base64 data URL", () => {    expect(parseBase64DataUrl("data:image/png;charset=utf-8,hello")).toBeNull();  });   it("rejects missing mime type", () => {    expect(parseBase64DataUrl("data:;base64,SGVsbG8=")).toBeNull();  });   it("parses base64 data URL with spaces in payload", () => {    expect(parseBase64DataUrl("data:image/png;base64,SGVs bG8=\n")).toEqual({      mimeType: "image/png",      base64: "SGVsbG8=",    });  });   it("does not read inherited keys from mime extension map", () => {    expect(inferImageExtension({ mimeType: "constructor" })).toBe(".bin");  });});