Skip to content

center-key/assert-deep-strict-equal

Repository files navigation

assert-deep-strict-equal

logo

Asynchronous assert fails in Mocha that you can see and don't timeout

License:MIT npm Build

The assertDeepStrictEqual() function checks that two values or serializable objects are identical.  The optional callback supports asynchronous specification suites and doesn't timeout on assertion failures.

A) 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';

B) Usage

const actual =   { ingredient: 'sugar', units: 'grams', amount: 100 };
const expected = { ingredient: 'sugar', units: 'grams', amount: 100 };
assertDeepStrictEqual(actual, expected, done);

The third parameter for the done callback is optional:

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

C) 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

About

⚖️ Asynchronous assert fails in Mocha you can see and don't timeout (with TypeScript declarations)

Topics

Resources

License

Stars

Watchers

Forks