chai-match-pattern
chai-match-pattern is a Swiss Army Knife for deep matching JSON objects. It is essentially a Chai wrapper for lodash-match-pattern
and detailed documentation can be found there about its pattern matching functionality. This functionality includes deep matching of JSON properties by
- Exact values
- Regex
- Any matcher from
checkit
(e.g._.isURL
,_.isEmail
) - Any matcher from
lodash
(e.g._.isObject
,_.isNaN
) - Partial matches
- Custom matching functions
- Filtered values
- And more…
Basic Usage
# with npm
npm install chai-match-pattern --save-dev
# or with yarn
yarn add --dev chai-match-pattern
In your test file insert
const chai = require('chai');
const chaiMatchPattern = require('chai-match-pattern');
chai.use(chaiMatchPattern);
const _ = chaiMatchPattern.getLodashModule(); // recommend using our lodash extension
Then use patterns to check your JSON with the .matchPattern(pattern)
assertion function. For example
chai.expect({a: 1, b: 'abc'}).to.matchPattern({a: 1, b: _.isString});
See lodash-match-pattern
for way, way more details.
Additionally any of the included isXxxx
functions can be used directly as assertion functions. For example
chai.expect(7.5).isBetween(7, 8);