From f82d74d5a549cfcb3c09211d9ec9bc0e6efbf700 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 12 Dec 2023 11:57:00 +0000 Subject: [PATCH] :sparkles: treat enums containing semi-colons as multiselect. --- lib/schema/__test__/validator.test.js | 7 +++++++ lib/schema/validator.js | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/schema/__test__/validator.test.js b/lib/schema/__test__/validator.test.js index 338e80c..d75bb5b 100644 --- a/lib/schema/__test__/validator.test.js +++ b/lib/schema/__test__/validator.test.js @@ -84,4 +84,11 @@ describe('validator(field, config)', () => { expect(result).toEqual('these') }) + + it('should pass multiselect value through if values are in enum collection', () => { + const validate = validator('enum', ofConfig) + const result = validate('these;one') + + expect(result).toEqual('these;one') + }) }) diff --git a/lib/schema/validator.js b/lib/schema/validator.js index 36d067a..1163fe1 100644 --- a/lib/schema/validator.js +++ b/lib/schema/validator.js @@ -33,7 +33,9 @@ const functionizeConfig = (field, config) => { } if (config.enum) { _config.enum = value => { - if (!contains(value, config.enum)) { + const isValid = value.split(';').filter(v => contains(v, config.enum)).length > 0 + + if (!isValid) { throw new Error( `Field ${field} only accpets [ ${config.enum.join(', ')} ]. Instead got ${value}` )