mc-publish/tests/unit/utils/io/file-path.spec.ts
2023-05-17 15:38:21 +03:00

86 lines
2.8 KiB
TypeScript

import { isAsyncFilePath, isFilePath, isSyncFilePath } from "@/utils/io/file-path";
import { FileHandle } from "node:fs/promises";
describe("isFilePath", () => {
test("returns true for string file paths", () => {
expect(isFilePath("path/to/file.txt")).toBe(true);
});
test("returns true for file descriptors", () => {
expect(isFilePath(123)).toBe(true);
});
test("returns true for URL file paths", () => {
expect(isFilePath(new URL("file:///path/to/file.txt"))).toBe(true);
});
test("returns true for Buffer file paths", () => {
expect(isFilePath(Buffer.from("path/to/file.txt"))).toBe(true);
});
test("returns true for file handles", () => {
expect(isFilePath({ fd: 1 } as FileHandle)).toBe(true);
});
test("returns false for invalid file paths", () => {
expect(isFilePath(null)).toBe(false);
expect(isFilePath(undefined)).toBe(false);
expect(isFilePath({})).toBe(false);
expect(isFilePath([])).toBe(false);
});
});
describe("isAsyncFilePath", () => {
test("returns true for string file paths", () => {
expect(isAsyncFilePath("path/to/file.txt")).toBe(true);
});
test("returns true for URL file paths", () => {
expect(isAsyncFilePath(new URL("file:///path/to/file.txt"))).toBe(true);
});
test("returns true for Buffer file paths", () => {
expect(isAsyncFilePath(Buffer.from("path/to/file.txt"))).toBe(true);
});
test("returns true for file handles", () => {
expect(isAsyncFilePath({ fd: 1 } as FileHandle)).toBe(true);
});
test("returns false for invalid file paths", () => {
expect(isAsyncFilePath(null)).toBe(false);
expect(isAsyncFilePath(undefined)).toBe(false);
expect(isAsyncFilePath({})).toBe(false);
expect(isAsyncFilePath([])).toBe(false);
expect(isAsyncFilePath(1)).toBe(false);
});
});
describe("isSyncFilePath", () => {
test("returns true for string file paths", () => {
expect(isSyncFilePath("path/to/file.txt")).toBe(true);
});
test("returns true for file descriptors", () => {
expect(isSyncFilePath(123)).toBe(true);
});
test("returns true for URL file paths", () => {
expect(isSyncFilePath(new URL("file:///path/to/file.txt"))).toBe(true);
});
test("returns true for Buffer file paths", () => {
expect(isSyncFilePath(Buffer.from("path/to/file.txt"))).toBe(true);
});
test("returns false for file handles", () => {
expect(isSyncFilePath({ fd: 1 } as FileHandle)).toBe(false);
});
test("returns false for invalid file paths", () => {
expect(isSyncFilePath(null)).toBe(false);
expect(isSyncFilePath(undefined)).toBe(false);
expect(isSyncFilePath({})).toBe(false);
expect(isSyncFilePath([])).toBe(false);
});
});