presuppose v1.1.1
presuppose
Assertion library
Syntax:
presuppose.validator(properties:object, options?:any, msg:string | ((propName:string) => string)):void;Available validators are listed below
nonEmptyStrings
Checks if given object has only fields with non empty strings values. Example:
const presuppose = require(presuppose');
presuppose.nonEmptyStrings({ prop1: 'test', prop2: 'test2' });the above code will not throw. However this:
presuppose.nonEmptyStrings({ prop1: 123, prop2: 'test2' });will throw AssertionError because prop1 is not a stirng.
This assertion also checks for emptiness:
presuppose.nonEmptyStrings({ prop: '' });will throw because prop is empty.
stringsOrUndefined
Checks if given object has only fields with strings or undefined values. Example:
presuppose.stringsOrUndefined({ prop1: 'abc', prop2: undefined });the above code will not throw. However:
presuppose.stringsOrUndefined({ prop: 123 });will throw AssertionError
arrays
Checks if given object has only fields with array valuest. Example:
presuppose.arrays({ arr: [] });the above code will not throw. However:
presuppose.arrays({ arr: { length: 123 } });will throw.
arraysOfNonEmptyStrings
Checks if given object has only fields with arrays of non empty strings as values.Example
presuppose.arraysOfNonEmptyStrings({ arr: [ 'item1', 'item2' ] });the above code will not throw since the input object has only one key: arr which is an array of non empty strings. However:
presuppose.arraysOfNonEmptyStrings({ arr: [ 'item', 123 ] });will throw.
specificValues
Checks if given object has only fields with values specified by an argument to this function. Example:
presuppose.specificValues({ prop1: 123, prop2: 123 }, 123);will not throw. However:
presuppose.specificValues({ prop: 111 }, 123);will throw;
objects
Checks if given object has only objects as fields. Example
presuppose.objects({ prop1: {foo: 'bar'}, prop2: new Date() });will not throw. However this:
presuppose.objects({ prop1: 123 });will throw. Also when given an array it will throw:
presuppose.objects({ prop1: [] }); // throwsstringsNotMatch
Checks if all properties in a given object do not match a certain pattern. Example:
presuppose.stringsNotMatch({ prop1: 'test' }, /error/);the above code will not throw because 'test' do not match /error/. However:
presuppose.stringsNotMatch({ prop1: 'test' }, /te*/);will throw.
numbers
Checks if all properties in a given object are numbers. Optionally can include range codnditions.
Example:
presuppose.numbers({prop1: '1'})will throw, cause '1' is a string , while
presuppose.numbers({prop1: 1})will not throw.
To check if the number is in specific range you can add a second parameter, which has to be an object containing one or more of the following props:
greaterThangreaterThanOrEquallessThanlesThanOrEqual
Example:
presuppose.numbers(
{prop1:10},
{greaterThan:5, lessThanOrEqual:10}
)will not throw, as prop1 is greater than 5 and less than or equal 10.
Customizing error message
You can customize error message by providing a custom string:
presuppose.nonEmptyStrings({ a: 123 }, null, 'a cannot be empty');If you have more then one property then it's useful to add a property name to the error message. you can do it like that:
presuppose.nonEmptyStrings({ a: 123, b: 222 }, null, propName => `${propName} cannot be empty`);License
ISC - see LICENSE file