import { describe, it } from "vitest"; import { Expect, AssertEqual } from "inferred-types/types"; import { KindError, KindErrorShape } from "~"; import { AssertExtends, AssertTrue } from "inferred-types"; describe("KindError", () => { it("just name", () => { type T = KindError<"foobar">; type cases = [ Expect>, Expect>, Expect>, Expect>, ]; }); it("name and message", () => { type T = KindError<"foobar", "bad juju">; type cases = [ Expect>, Expect>, Expect>, Expect>, ]; }); it("name, message, and context", () => { type T = KindError<"foobar", "bad juju", { lib: "KindError" }>; type cases = [ Expect>, Expect>, Expect>, Expect>, Expect>, ]; }); it("has static subType", () => { type T = KindError<"foo/bar">; type cases = [ Expect>, Expect>, Expect>, Expect>, Expect>, ]; }); it("has union subType", () => { type T = KindError<"foo/bar|baz">; type cases = [ Expect>, Expect>, Expect>, Expect>, Expect>, ]; }); it("KindError extends KindErrorShape", () => { type cases = [ Expect>, Expect, KindErrorShape >>, ]; }); });