@wikimedia/mw-node-qunit

7.2.0 • Public • Published

mw-node-qunit

A QUnit test runner for node, that adds some mediawiki specific things.

npm install -g mw-node-qunit
mw-node-qunit tests/*.js
# Or for cross-shell and OS glob support
mw-node-qunit 'tests/**/*.js'

The output for the tests is in TAP format, which is pretty basic, if you want pretty output, here is a list of reporters you can install to prettify output. Example:

npm install -g tap-dot
mw-node-qunit tests/*.js | tap-dot

If you want to run tests on watch, use nodemon for example:

npm install -g nodemon
nodemon -w src -w tests --exec "mw-node-qunit tests/*.js | tap-dot"

Testing with QUnit

This test runner will add QUnit, mediaWiki globals, and a jsdom window object and jquery initialized as window, document, and jQuery in the global scope so you can run your tests assuming those will be present.

It also adds a sinon sandbox to the this scope on a test as this.sandbox that is automatically created and restored before and after every test, so you can spy/stub things in beforeEach or in the tests without worrying about having to manually restoring them after the test.

Usage

without ES6 support

mw-node-qunit --require @babel/register \"tests/node-qunit/**/*.test.js\"

Note, that this is innterchangeable with:

qunit --require @babel/register \"tests/node-qunit/**/*.test.js\"

The mw-node-qunit provides scaffolding that is useful for providing mock mediaWiki environments which can depend on existence of the jQuery, mediaWiki and DOM libraries.

with ES6+ support

Available using Babel dependencies:

    "@babel/core": "7.2.2",
    "@babel/preset-env": "7.3.1",
    "@babel/register": "7.0.0",
    "babel-loader": "8.0.5",

You can do:

mw-node-qunit --require @babel/register \"tests/node-qunit/**/*.test.js\"

Package Sidebar

Install

npm i @wikimedia/mw-node-qunit

Weekly Downloads

234

Version

7.2.0

License

GPL-3.0

Unpacked Size

17.9 kB

Total Files

20

Last publish

Collaborators

  • mvolz
  • lwatz16
  • tchin25
  • egardner
  • ottomata
  • annetee
  • jgiannelos-wmf
  • joakin
  • krinkle
  • jdforrester
  • edg2s
  • volker_e
  • catrope
  • santhosh.thottingal
  • cscott
  • subbu_ss
  • arlolra
  • jdlrobson
  • mateusbs17
  • brightbyte
  • phuedx
  • nrayio
  • jandre3000
  • sbassett29
  • nikerabbit