import { describe, it } from "vitest"; import { Expect, Test, } from "inferred-types/types"; import { DetectOptionalValues } from "~/types"; import { AssertEqual, Dictionary, EmptyObject } from "inferred-types"; describe("DetectOptionalValues", () => { it("empty object", () => { type T = DetectOptionalValues; type cases = [ Expect> ]; }); it("wide dictionary", () => { type T = DetectOptionalValues>; type cases = [ Expect>> ]; }); it("keys are literals", () => { type T = DetectOptionalValues<{foo: "foo"; bar: "bar"}>; type cases = [ Expect> ]; }); it("some literals mixed with undefined union", () => { type T = DetectOptionalValues<{foo: "foo"; bar: "bar" | undefined}>; type cases = [ Expect> ]; }); it("all optional", () => { type T = DetectOptionalValues<{foo: "foo" | undefined; bar: "bar" | undefined}>; type cases = [ Expect> ]; }); });