diff --git a/src/validators/common.ts b/src/validators/common.ts index ecee8b16..80d0d779 100644 --- a/src/validators/common.ts +++ b/src/validators/common.ts @@ -70,11 +70,19 @@ export function validateAliasPrimary(value: any): void { } } +export function validateAliasDefault(value: any): void { + // Property is optional, it only exists for imported entities. + if (!(_.isNil(value) || _.isBoolean(value))) { + throw new ValidationError('Value has to be a boolean, `null` or `undefined`', 'alias.default', value); + } +} + export function validateAlias(value: any): void { validateAliasName(get(value, 'name')); validateAliasSortName(get(value, 'sortName')); validateAliasLanguage(get(value, 'language')); validateAliasPrimary(get(value, 'primary')); + validateAliasDefault(get(value, 'default', null)); } export const validateAliases = _.partial( diff --git a/test/validators/test-alias.js b/test/validators/test-alias.js index 1bf0e722..674a6296 100644 --- a/test/validators/test-alias.js +++ b/test/validators/test-alias.js @@ -25,7 +25,7 @@ import { testValidateStringFunc } from './helpers'; import { - validateAlias, validateAliasLanguage, validateAliasName, + validateAlias, validateAliasDefault, validateAliasLanguage, validateAliasName, validateAliasPrimary, validateAliasSortName, validateAliases } from '../../lib/validators/common'; import {ValidationError} from '../../lib/validators/base'; @@ -53,11 +53,19 @@ function describeValidateAliasPrimary() { testValidateBooleanFunc(validateAliasPrimary); } +function describeValidateAliasDefault() { + testValidateBooleanFunc(validateAliasDefault, false); +} + function describeValidateAlias() { it('should pass a valid Object', () => { expect(() => validateAlias(VALID_ALIAS)).to.not.throw(); }); + it('should pass a valid Object with a default flag', () => { + expect(() => validateAlias({...VALID_ALIAS, default: true})).to.not.throw(); + }); + it('should pass a valid Immutable.Map', () => { expect(() => validateAlias(Immutable.fromJS(VALID_ALIAS))).to.not.throw(); }); @@ -132,6 +140,7 @@ function tests() { describe('validateAliasLanguage', describeValidateAliasLanguage); describe('validateAlias', describeValidateAlias); describe('validateAliasPrimary', describeValidateAliasPrimary); + describe('validateAliasDefault', describeValidateAliasDefault); describe('validateAliases', describeValidateAliases); }