assert-json-equal
v2.0.0
Published
assert.deepStrictEqual for JSON object.
Downloads
1,825
Readme
assert-json-equal
assert.deepStrictEqual
for JSON object.
assert-json-equal provide a assertJsonEqual
function.
assert.deepStrictEqual
discriminate undefined
value and missing property.
const a = {};
const b = {
undef: undefined
};
assert.throws(() => {
assert.deepStrictEqual(a, b); // => throw
});
assertJsonEqual
does not discriminate undefined
value and missing property.
It is useful for comparing JSON objects.
import { assertJsonEqual } from "assert-json-equal"
const a = {};
const b = {
undef: undefined
};
assertJsonEqual(a, b); // => pass
Install
Install with npm:
npm install assert-json-equal
Usage
/**
* `assert.deepStrictEqual` for JSON object.
* Same API with `assert.deepStrictEqual(a, b, [message])`
*/
export declare const assertJsonEqual: (actual: any, expected: any, message?: string | Error | undefined) => void;
Mechanism
Serialize and Deserialize object with JSON
before compare objects with assert.deepStrictEqual
.
import assert from "assert";
const normalizeJSON = <T extends any>(json: T) => {
return JSON.parse(JSON.stringify(json));
};
/**
* `assert.deepStrictEqual` for JSON object.
* Same API with `assert.deepStrictEqual(a, b, [message])`
* @param actual
* @param expected
* @param message
*/
export const assertJsonEqual = (actual: any, expected: any, message?: string | Error) => {
assert.deepStrictEqual(normalizeJSON(actual), normalizeJSON(expected), message);
}
Changelog
See Releases page.
Running tests
Install devDependencies and Run npm test
:
npm test
Contributing
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
License
MIT © azu