chai-shallow-deep-equal
Version:
Shallow deep equal assertion for chai
74 lines (57 loc) • 1.67 kB
Markdown
# chai-shallow-deep-equal
Will shallowly perform a deep equal assertion. In other terms is consist of checking that an object, or objects graph, is contained within another one (see examples bellow).
[](http://badge.fury.io/js/chai-shallow-deep-equal)
[](https://travis-ci.org/michelsalib/chai-shallow-deep-equal)
## Usage
### Browser
```html
<script src="chai.js"></script>
<script src="chai-shallow-deep-equal.js"></script>
```
### Node
```javascript
var chai = require('chai');
chai.use(require('chai-shallow-deep-equal'));
```
## Assertions
ShallowDeepEqual is available for all chai assertion styles:
```javascript
var a = {name: 'Michel', language: 'javascript'};
var b = {name: 'Michel'};
a.should.shallowDeepEqual(b);
expect(a).to.shallowDeepEqual(b);
assert.shallowDeepEqual(a, b);
```
## Example
```javascript
assert.shallowDeepEqual({name: 'Michel', language: 'javascript'}, {name: 'Michel'}); // true
assert.shallowDeepEqual({
name: 'Michel',
language: 'javascript',
tags: [
'developer',
'gamer'
]},
{
name: 'Michel',
tags: [
'developer'
]}); // true
assert.shallowDeepEqual([
{brand: 'apple', color: 'red'},
{brand: 'samsung', color: 'blue'},
],
{
length: 2,
0: {color: 'red'},
1: {brand: 'samsung'},
}); // true
assert.shallowDeepEqual({
name: 'Michel',
age: undefined
},
{
name: 'Michel',
age: 37
}); // false (age should not be defined)
```