https://github.com/azu/assert-json-equal
assert.deepStrictEqual for JSON object.
https://github.com/azu/assert-json-equal
assert json nodejs
Last synced: 3 months ago
JSON representation
assert.deepStrictEqual for JSON object.
- Host: GitHub
- URL: https://github.com/azu/assert-json-equal
- Owner: azu
- License: mit
- Created: 2020-02-29T08:12:57.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-08T15:39:43.000Z (over 3 years ago)
- Last Synced: 2025-10-18T16:17:48.521Z (9 months ago)
- Topics: assert, json, nodejs
- Language: TypeScript
- Homepage:
- Size: 88.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# assert-json-equal
`assert.deepStrictEqual` for JSON objects.
assert-json-equal provide a `assertJsonEqual` function.
`assert.deepStrictEqual` discriminate `undefined` value and missing property.
```js
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.
```js
import { assertJsonEqual } from "assert-json-equal"
const a = {};
const b = {
undef: undefined
};
assertJsonEqual(a, b); // => pass
```
## Install
Install with [npm](https://www.npmjs.com/):
npm install assert-json-equal
## Usage
```ts
/**
* `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`.
```ts
import assert from "assert";
const normalizeJSON = (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](https://github.com/azu/assert-json-equal/releases).
## 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](https://github.com/azu/assert-json-equal/issues).
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D
## Author
- [github/azu](https://github.com/azu)
- [twitter/azu_re](https://twitter.com/azu_re)
## License
MIT © azu