diff --git a/src/utils/index.ts b/src/utils/index.ts index b13f598ef..bff1d518f 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -183,6 +183,10 @@ export const normalizeRules = (rules: any) => { return rules.split('|').reduce((prev, rule) => { const parsedRule = parseRule(rule); + if (!parsedRule.name) { + return prev; + } + prev[parsedRule.name] = parsedRule.params; return prev; diff --git a/tests/validate.spec.js b/tests/validate.spec.js index 64e570394..6c7d91cae 100644 --- a/tests/validate.spec.js +++ b/tests/validate.spec.js @@ -1,6 +1,6 @@ import { validate } from '@/validate'; import { extend } from '@/extend'; -import { confirmed } from '@/rules'; +import { confirmed, numeric } from '@/rules'; test('returns custom error messages passed in ValidationOptions', async () => { extend('truthy', { @@ -77,3 +77,12 @@ describe('target field placeholder', () => { expect(result.errors[0]).toEqual('Foo must be the sum of Bar and Baz'); }); }); + +test('allows empty rules for the string format', async () => { + extend('numeric', numeric); + let result = await validate(100, '|numeric'); + expect(result.valid).toBe(true); + + result = await validate(100, '||||numeric'); + expect(result.valid).toBe(true); +});