import mockFs from "mock-fs"; import { Blob, isBlob, readBlob, readBlobSync } from "@/utils/net/blob"; beforeEach(() => { mockFs({ "test.txt": "test", }); }); afterEach(() => { mockFs.restore(); }); describe("isBlob", () => { test("returns true for Blob instances", () => { expect(isBlob(new Blob([]))).toBe(true); }); test("returns false for non-Blob objects", () => { expect(isBlob({})).toBe(false); }); test("returns false for null and undefined", () => { expect(isBlob(null)).toBe(false); expect(isBlob(undefined)).toBe(false); }); }); describe("readBlob", () => { test("reads a file and returns its content as a Blob", async () => { const blob = await readBlob("test.txt"); expect(isBlob(blob)).toBe(true); expect(await blob.text()).toBe("test"); }); test("throws an error for non-existent file", async () => { await expect(readBlob("non-existent.txt")).rejects.toThrow(); }); }); describe("readBlobSync", () => { test("reads a file synchronously and returns its content as a Blob", async () => { const blob = readBlobSync("test.txt"); expect(isBlob(blob)).toBe(true); expect(await blob.text()).toBe("test"); }); test("throws an error for non-existent file", () => { expect(() => readBlobSync("non-existent.txt")).toThrow(); }); });