to have a value satisfying
- <object> [not] to have a value [exhaustively] satisfying <assertion>
- <object> [not] to have a value [exhaustively] satisfying <any>
Asserts that an object contains at least one value that satisfies a given
value, function (wrapped in expect.it
) or other assertion.
Note that this assertion fails if passed an empty object as the subject.
expect({ foo: { a: 1 }, bar: { b: 2 }, baz: { c: 3 }, qux: { d: 4 } },'to have a value satisfying',{ a: 1 });expect({ foo: 0, bar: 1, baz: 2, qux: 3 },'to have a value satisfying',expect.it(function (value) {expect(value, 'to be a number');}));expect({ foo: 0, bar: 1, baz: 2, qux: 3 },'to have a value satisfying','to be a number');
The expected value will be matched against the value with
to satisfy semantics, so you can pass any of the
values supported by to satisfy
. To use strict to satisfy
semantics, you can
use the "exhaustively" flag:
expect({ foo: { a: 1, b: 2 } }, 'to have a value satisfying', { a: 1 });
expect({ foo: { a: 1, b: 2 } }, 'to have a value exhaustively satisfying', {a: 1,});
expected { foo: { a: 1, b: 2 } } to have a value exhaustively satisfying { a: 1 }
In case of a failing expectation you get the following output:
expect({ foo: [10, 11, 12], bar: [14, 15, 16], baz: [17, 18, 19] },'to have a value satisfying','to have items satisfying',expect.it('to be a number').and('to be below', 8));
expected { foo: [ 10, 11, 12 ], bar: [ 14, 15, 16 ], baz: [ 17, 18, 19 ] } to have a value satisfyingto have items satisfying expect.it('to be a number').and('to be below', 8)
This assertion can be negated using the not
flag:
expect({ foo: { a: 1, b: 2 } }, 'not to have a value satisfying', { a: 1 });
expected { foo: { a: 1, b: 2 } } not to have a value satisfying { a: 1 }{foo: { a: 1, b: 2 }//should be removed}