GitHub Latest Release Build Status Coverage Status Dependency Status Dev Dependency Status

Extends Chai with an assertion for deeply matching objects (i.e. subset equality checking).


$ npm install --save chai
$ npm install --save chai-deep-match


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:


Copyright (c) 2016-2018, James M. Greene (MIT License)