From c7b271993e47c1c3ad4d5a81459dbf0f8ca5eb65 Mon Sep 17 00:00:00 2001 From: Pontus Alexander Date: Fri, 7 Mar 2025 14:07:12 +0100 Subject: [PATCH] Add test for mixed values in oneOf --- src/__tests__/codecs.test.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/__tests__/codecs.test.ts b/src/__tests__/codecs.test.ts index 9c51783..42be920 100644 --- a/src/__tests__/codecs.test.ts +++ b/src/__tests__/codecs.test.ts @@ -185,5 +185,33 @@ describe('Codecs', () => { }); }); }); + + describe('using mixed', () => { + const NONE = { + toString() { + return '--'; + }, + }; + + const states = [NONE, 'a', 'b', 1, 2] as const; + const state = codecs.oneOf(states); + + it('encodes', () => { + expect(state.encode(2)).toStrictEqual('2'); + }); + + describe('decode', () => { + it('decodes', () => { + expect(state.decode('a')).toBe('a'); + expect(state.decode('b')).toBe('b'); + expect(state.decode('1')).toBe(1); + expect(state.decode('2')).toBe(2); + }); + + it('returns first option if no match', () => { + expect(state.decode('miss')).toBe(NONE); + }); + }); + }); }); });