unexpected
Version:
Extensible BDD assertion toolkit
70 lines (55 loc) • 1.52 kB
Markdown
Asserts that all items of an array (or array-like object) satisfy a given assertion or function.
Alias: `to be an array whose items satisfy`.
Notice this assertion fails when given an empty array.
```javascript
expect([0, 1, 2, 3, 4], 'to have items satisfying', function (item, index) {
expect(item, 'to be a number');
});
expect([0, 1, 2, 3, 4], 'to have items satisfying', 'to be a number');
expect([[1], [2]], 'to have items satisfying',
'to have items satisfying', 'to be a number');
expect([1, 2, 3, 4], 'to have items satisfying',
expect.it('to be a number').and('to be positive'));
```
In case of a failing expectation you get the following output:
```javascript
expect([ [0, 1, 2], [4, '5', '6'], [7, '8', 9] ],
'to have items satisfying',
'to have items satisfying',
'to be a number');
```
```output
expected [ [ 0, 1, 2 ], [ 4, '5', '6' ], [ 7, '8', 9 ] ]
to have items satisfying 'to have items satisfying', 'to be a number'
[
[...],
[
4,
'5', // expected '5' to be a number
'6' // expected '6' to be a number
],
[
7,
'8', // expected '8' to be a number
9
]
]
```
Here a another example:
```javascript
expect([0, 1, 2, 3, 4], 'to have items satisfying',
expect.it('to be a number').and('to be positive'));
```
```output
expected [ 0, 1, 2, 3, 4 ] to have items satisfying
expect.it('to be a number')
.and('to be positive')
[
0, // ✓ expected 0 to be a number and
// ⨯ expected 0 to be positive
1,
2,
3,
4
]
```