CollectionIncluding
CollectionIncluding
Validates if value matches an Object
with expected keys and values matching
the given expectations.
The value may also contain other keys with arbitrary values not defined in
pattern(equivalent of Meteor's Match.ObjectIncluding
).
*Returns:** true
if value is matching explicit CollectionIncluding
pattern
or implicit expectation as plain object even with arbitrary keys, else throws.
import { expect } from 'chai';
import { validate, ValidationError, CollectionIncluding } from 'typend';
expect(validate({ foo: 'foo' }, new CollectionIncluding({ foo: 'foo' }))).to.be
.true;
expect(
validate({ foo: 'foo', bar: 'bar' }, new CollectionIncluding({ foo: 'foo' }))
).to.be.true;
expect(() =>
validate(
{ foo: 'NOT_foo', bar: 'bar' },
new CollectionIncluding({ foo: 'foo' })
)
).to.throw(ValidationError);
// You can omit defining explicit pattern(`CollectionIncluding`) by passing plain object in loose mode:
validate({ foo: 'foo' }, { foo: 'foo' }, false);