import { expect, test } from "vitest" import { errorIsNetworkError, errorStringify, toError } from "#Source/basic/index.ts" test("errorIsNetworkError returns expected values", () => { expect(errorIsNetworkError(null)).toBe(false) expect(errorIsNetworkError(undefined)).toBe(false) expect(errorIsNetworkError("Network request failed")).toBe(false) const nonTypeError = new Error("Failed to fetch") expect(errorIsNetworkError(nonTypeError)).toBe(false) const networkError = new TypeError("Failed to fetch") expect(errorIsNetworkError(networkError)).toBe(true) const safariError = new TypeError("Load failed") // @ts-expect-error --- IGNORE --- safariError.stack = undefined expect(errorIsNetworkError(safariError)).toBe(true) const safariWithStack = new TypeError("Load failed") safariWithStack.stack = "TypeError: Load failed" expect(errorIsNetworkError(safariWithStack)).toBe(false) }) test("errorStringify returns readable output", () => { expect(errorStringify(new Error("boom"))).toBe("Error: boom") expect(errorStringify(123)).toBe("123") }) test("toError returns expected values", () => { const error = new Error("boom") expect(toError(error)).toBe(error) const wrappedError = toError(123) expect(wrappedError).toBeInstanceOf(Error) expect(wrappedError.message).toBe("123") })