From 07cdfb2e4ec761021477271776b81f33af0e731d Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 17 Mar 2021 17:56:37 +0100 Subject: towards wallet-core / util split --- packages/taler-wallet-core/src/util/codec-test.ts | 78 ----------------------- 1 file changed, 78 deletions(-) delete mode 100644 packages/taler-wallet-core/src/util/codec-test.ts (limited to 'packages/taler-wallet-core/src/util/codec-test.ts') diff --git a/packages/taler-wallet-core/src/util/codec-test.ts b/packages/taler-wallet-core/src/util/codec-test.ts deleted file mode 100644 index f8f4c797c..000000000 --- a/packages/taler-wallet-core/src/util/codec-test.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2018-2019 GNUnet e.V. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see - */ - -/** - * Type-safe codecs for converting from/to JSON. - */ - -import test from "ava"; -import { - Codec, - buildCodecForObject, - codecForConstString, - codecForString, - buildCodecForUnion, -} from "./codec"; - -interface MyObj { - foo: string; -} - -interface AltOne { - type: "one"; - foo: string; -} - -interface AltTwo { - type: "two"; - bar: string; -} - -type MyUnion = AltOne | AltTwo; - -test("basic codec", (t) => { - const myObjCodec = buildCodecForObject() - .property("foo", codecForString()) - .build("MyObj"); - const res = myObjCodec.decode({ foo: "hello" }); - t.assert(res.foo === "hello"); - - t.throws(() => { - myObjCodec.decode({ foo: 123 }); - }); -}); - -test("union", (t) => { - const altOneCodec: Codec = buildCodecForObject() - .property("type", codecForConstString("one")) - .property("foo", codecForString()) - .build("AltOne"); - const altTwoCodec: Codec = buildCodecForObject() - .property("type", codecForConstString("two")) - .property("bar", codecForString()) - .build("AltTwo"); - const myUnionCodec: Codec = buildCodecForUnion() - .discriminateOn("type") - .alternative("one", altOneCodec) - .alternative("two", altTwoCodec) - .build("MyUnion"); - - const res = myUnionCodec.decode({ type: "one", foo: "bla" }); - t.is(res.type, "one"); - if (res.type == "one") { - t.is(res.foo, "bla"); - } -}); -- cgit v1.2.3