import { describe, expect, it } from "vitest"; import type { Expect, AssertEqual, AssertExtends } from "inferred-types/types"; import { asError } from "~/utils/asError"; import { err } from 'inferred-types'; describe("asError", () => { it("happy path", () => { const t0 = asError(new Error("uh oh")); const t1 = err("uh oh"); const t2 = asError(`uh oh`); const t3 = asError({code: 500, message: "uh oh"}); expect(t1 instanceof Error).toBe(true); type cases = [ // all should extend Error Expect>, Expect>, Expect>, Expect>, ]; }); it("literals preserved", () => { const t1 = err("bad juju", "uh oh"); const t2 = asError(`uh oh`); const t3 = asError({code: 500, message: "uh oh"}); type cases = [ Expect>, Expect>, Expect>, Expect>, Expect>, ]; }); });