Skip to content

Commit

Permalink
feat: Validate optional boolean flag alias.default of imports
Browse files Browse the repository at this point in the history
  • Loading branch information
kellnerd committed Jun 25, 2024
1 parent 436d008 commit a912ab9
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/validators/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
11 changes: 10 additions & 1 deletion test/validators/test-alias.js
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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();
});
Expand Down Expand Up @@ -132,6 +140,7 @@ function tests() {
describe('validateAliasLanguage', describeValidateAliasLanguage);
describe('validateAlias', describeValidateAlias);
describe('validateAliasPrimary', describeValidateAliasPrimary);
describe('validateAliasDefault', describeValidateAliasDefault);
describe('validateAliases', describeValidateAliases);
}

Expand Down

0 comments on commit a912ab9

Please sign in to comment.