From 657aed1244c1352b06bd3bd4eb13f38391b807b5 Mon Sep 17 00:00:00 2001 From: Alex Christoffer Rasmussen Date: Tue, 11 Jun 2024 13:03:34 +0200 Subject: [PATCH] Fix coerce enum (#1064) --- apps/server/src/utils/__tests__/coerceType.test.ts | 10 +++++----- apps/server/src/utils/coerceType.ts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/server/src/utils/__tests__/coerceType.test.ts b/apps/server/src/utils/__tests__/coerceType.test.ts index 65699d443..8b37a0d25 100644 --- a/apps/server/src/utils/__tests__/coerceType.test.ts +++ b/apps/server/src/utils/__tests__/coerceType.test.ts @@ -22,18 +22,18 @@ describe('parses a colour string that is', () => { describe('match a string to an enum that is', () => { enum testEnum { - 'abc', - 'def', - 'ghi', + ABC = 'abc', + DEF = 'def', + GHI = 'ghi', } it('valid key', () => { const key = coerceEnum('abc', testEnum); expect(key).toBe('abc'); }); it('invalid key', () => { - expect(() => coerceEnum('123', testEnum)).toThrowError(Error('Invalid value received')); + expect(() => coerceEnum('123', testEnum)).toThrow(); }); it('invalid type', () => { - expect(() => coerceEnum(123, testEnum)).toThrowError(Error('Invalid value received')); + expect(() => coerceEnum(123, testEnum)).toThrow(); }); }); diff --git a/apps/server/src/utils/coerceType.ts b/apps/server/src/utils/coerceType.ts index ea9094fab..6a5730061 100644 --- a/apps/server/src/utils/coerceType.ts +++ b/apps/server/src/utils/coerceType.ts @@ -7,7 +7,7 @@ import { isColourHex } from 'ontime-utils'; * @throws {Error} Throws an error value is not found in the enum. */ export function coerceEnum(value: unknown, list: object): T { - if (typeof value !== 'string' || !(value in list)) { + if (typeof value !== 'string' || !Object.values(list).includes(value)) { throw new Error('Invalid value received'); } return value as T;