assert-deep-strict-equal

Asynchronous assert fails in Mocha you can see and don't timeout (written in TypeScript)

Usage no npm install needed!

<script type="module">
  import assertDeepStrictEqual from 'https://cdn.skypack.dev/assert-deep-strict-equal';
</script>

README

assert-deep-strict-equal

logo

Asynchronous assert fails in Mocha you can see and don't timeout (written in TypeScript)

License:MIT npm Vulnerabilities Build

1) Setup

Install package for node:

$ npm install --save-dev assert-deep-strict-equal

Import into your Mocha spec file:

import { assertDeepStrictEqual } from 'assert-deep-strict-equal';

2) Usage

const actual =   { x: 3, y: 7, z: 21 };
const expected = { x: 3, y: 7, z: 21 };
assertDeepStrictEqual(actual, expected, done);

The third parameter for the done callback is optional:

assertDeepStrictEqual(actual, expected);  //synchronous test case

3) Example

describe('Star Wars API result for spaceship #3', () => {

   it('is a Star Destroyer', (done) => {
      const url = 'https://swapi.py4e.com/api/starships/3/';
      const handleData = (data) => {
         const actual = {
            name:         data.name,
            model:        data.model,
            manufacturer: data.manufacturer,
            };
         const expected = {
            name:         'Star Destroyer',
            model:        'Imperial I-class Star Destroyer',
            manufacturer: 'Kuat Drive Yards',
            };
         assertDeepStrictEqual(actual, expected, done);
         };
      fetchJson.get(url, { format: 'json' }).then(handleData);
      });

   });

Commands to run the above Star Destroyer example and others in examples.spec.js:

$ cd assert-deep-strict-equal
$ npm install
$ npm run examples

screenshot Note that the assertion failure does not cause a timeout and the test case error is easy to see and interpret.  The value of the name field is "BOGUS!" (red), but it was expected to be "payapa-berry" (green).



MIT License