mirror of
https://github.com/Kir-Antipov/mc-publish.git
synced 2024-11-30 04:10:55 -05:00
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
|
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();
|
||
|
});
|
||
|
});
|