chai-deep-match
Extends Chai with an assertion for deeply matching objects (i.e. subset equality checking).
Install
$ npm install --save chai
$ npm install --save chai-deep-match
Usage
var chai = require('chai');
var chaiDeepMatch = require('chai-deep-match');
chai.use( chaiDeepMatch );
chai.expect( { a: 'foo', b: 'bar', c: 'baz' } ).to.deep.match( { a: 'foo', c: 'baz' } );
// => pass
chai.expect( { a: 'foo', b: 'bar', c: 'baz' } ).to.not.deep.match( { a: 'fuzz', c: 'baz' } );
// => pass
Note about URL objects
This module also supports WHATWG URL objects, as introduced in Node 7.x (and backported into Node 6.x, it seems). However, it is important to note that the behavior by which it compares two URL objects will only consider them deeply matched if they are a full 100% match rather than a “subset” match. Hopefully this behavior is acceptable to those making use of it! :pray:
License
Copyright (c) 2016-2018, James M. Greene (MIT License)