From 910dfc2bb45e6a9c4fdee383374e9e8dacd0efd6 Mon Sep 17 00:00:00 2001 From: Yichuan Shen Date: Wed, 22 Mar 2023 03:16:51 +0100 Subject: [PATCH] Test generics --- test/enum.test.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/test/enum.test.ts b/test/enum.test.ts index af64d45..9bce8a3 100644 --- a/test/enum.test.ts +++ b/test/enum.test.ts @@ -8,14 +8,17 @@ import { } from "../dev_deps.ts"; import { TypeExtends } from "./utils.ts"; -class MessageVariants { +class MessageVariants { Quit = null; - Plaintext = Variant(); + Plaintext = Variant(); Encrypted = Variant(); } -type Message = Enum; -const Message = () => Enum.factory(MessageVariants); +type Message = Enum>; +const Message = () => Enum.factory(MessageVariants); + +type GenericMessage = Enum>; +const GenericMessage = () => Enum.factory(MessageVariants); Deno.test({ name: "Enums can contain one and only one variant", @@ -49,13 +52,16 @@ Deno.test({ msg = Message().Encrypted([1, 2, 3]); assertEquals(msg, { Encrypted: [1, 2, 3] }); + + let genMsg = GenericMessage().Plaintext(true); + assertEquals(genMsg, { Plaintext: true }); }, }); Deno.test({ name: "Enum.match() has to be exhaustive", fn() { - type M = Matcher; + type M = Matcher>; expectType({ Quit: () => -1,