wheredoc

0.0.9 • Public • Published

wheredoc

Use docstring-like data tables in JavaScript tests, similar to Cucumber's Scenario Outline Examples: or Spock where: blocks.

describe("Using Mocha and Chai.expect", (done) => {
  function spec(a, b, c) {
    expect(c).to.equal(a + b)

    where: `
      a  |  b  |  c
      1  |  2  |  3
      4  | -5  | -1
    `;
  }

  where(spec).forEach({ params, test } => {
    var { a, b, c } = params

    it(`${c} should equal ${a} + ${b}.`, test)
  })

  done()
})

Scenarios

The where(spec) call returns an array of scenarios (or errors - more on that elsewhere). A scenario contains a params map of key-value pairs, and a test function.

In cases where the testing library uses a flattened pattern, such as QUnit, and Tape, you can define the test name or message in the spec or test function itself, and call the scenario test directly in the iteration callback.

In cases where the testing library uses the describe-it pattern, such as Mocha and Jasmine, you can define the test name in each scenario iteration function, then pass both the name and the test function, e.g., as it(name, test).

Read more about this in the library examples document.

Requirements

ES2015 module support (i.e., JavaScript import statements):

Install

  • from npm: npm install wheredoc
  • from github: git clone https://github.com/dfkaye/wheredoc.git

Main test suite

Created on Node.js, version 14.13.0, using Mocha 8.1.3 and Chai 4.2.0.

Run with npm test

Example suites on Node.js

These have both passing and failing examples.

  • mocha (using chai): npm run mocha-node
  • qunit (using qunit-tap): npm run qunit-node
  • tape (using tape-describe): npm run tape

Browser example suites

The browser suites run with live-server and download the testing libraries from https://unpkg.com. You should install live-server globally, npm install -g live-server, before running these examples.

These have both passing and failing examples.

  • mocha (using chai): npm run mocha
  • qunit: npm run qunit

Further Documentation

License

MIT 2020

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.9
    4
    • latest

Version History

Package Sidebar

Install

npm i wheredoc

Weekly Downloads

4

Version

0.0.9

License

MIT

Unpacked Size

115 kB

Total Files

23

Last publish

Collaborators

  • dfkaye