Skip to content
Anton edited this page Sep 2, 2019 · 2 revisions

Zoroaster comes with an assertion library @zoroaster/assert that exports the following methods to be used for assertions in tests:

  • equal which is require('assert').equal for equality assertions on primitives such as strings.
  • ok which is require('assert').ok for truthy assertions.
  • deepEqual which is an alias for @zoroaster/deep-equal for assertions of complex objects, with red/green difference highlighting. It runs assert.strictEqual first and then uses an algorithm to show the differences in color.
  • throws which is an alias for assert-throws for assertions on the presence of errors in synchronous and asynchronous function calls.
  • assert which is just require('assert').equal.
import { equal, ok, deepEqual, throws, assert } from 'zoroaster'

throws

The assert-throws library is the easiest way to test whether an asynchronous function throws expected errors.

import { throws } from '@zoroaster/assert'

{
  async 'throws an error when choosing an unknown side'() {
    const zoroaster = new Zoroaster()
    await throws({
      async fn() {
        await zoroaster.side(Zoroaster.MAGI),  // follow yet unknown way
      },
      message: 'Unknown side',
    })
  },
}

See assert-throws API documentation to learn more about assertions.

Clone this wiki locally