import { describe, it } from "vitest"; import { HasRequiredVariants } from "~"; import { Expect, AssertFalse, AssertTrue, EmptyObject } from "inferred-types"; describe("HasRequiredVariants", () => { it("empty context", () => { type T = HasRequiredVariants; type cases = [ Expect>, ]; }); it("only literal values; no variants", () => { type T = HasRequiredVariants<{ test: true; answer: 42 }>; type cases = [ Expect>, ]; }); it("singular variant", () => { type T = HasRequiredVariants<{ test: boolean }>; type cases = [ Expect>, ]; }); it("required variant with optional", () => { type T = HasRequiredVariants<{ test: boolean; answer: 42 | undefined }>; type cases = [ Expect>, ]; }); it("just an optional variant", () => { type T = HasRequiredVariants<{ answer: 42 | undefined }>; type cases = [ Expect>, ]; }); });