tape-modern
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

tape-modern

Minimum viable testing framework:

  • TAP compliant
  • Works in Node and in browsers
  • Everything is assumed to be async — no need to faff around with t.plan and t.end

It requires Node 7.6+, because it uses async/await.

Installation

npm i -D tape-modern

Usage

const { test } = require('tape-modern');
 
test('these tests will all pass', t => {
    t.ok(true);
    t.ok(true, 'this time with an optional message');
    t.ok('not true, but truthy enough');
 
    t.equal(1 + 1, 2);
    t.equal(Math.max(1, 2, 3), 3);
 
    t.throws(() => {
        throw new Error('oh no!');
    }, /oh no!/);
 
    t.pass('this too shall pass');
});
 
test('these tests will not pass', t => {
    t.equal(42, '42');
    t.equal({}, {});
    t.fail('womp womp');
});
 
test.skip('this test will not run', t => {
    t.pass(false);
});

You can create custom assertions by adding methods to assert:

const { test, assert } = require('tape-modern');
 
assert.isArray = (value, msg = 'should be an array') => {
    assert.ok(Array.isArray(value), msg);
};
 
assert.isNotArray = (value, msg = 'should not be an array') => {
    assert.ok(!Array.isArray(value), msg);
};
 
test('things that are array-like', t => {
    const divs = document.getElementsByTagName('div');
 
    t.isNotArray(divs);
    t.isArray([...divs]);
});

To run (a) selected test(s), use test.only:

test('this test will not run', t => {
    // ...
});
 
test.only('this test will run', t => {
    // ...
});
 
test.only('so will this', t => {
    // ...
});

To skip a test, use test.skip:

test.skip('this test will be skipped', t => {
    // ...
});

You can check when your tests have finished running with the done promise:

const { done } = require('tape-modern');
 
// make it visible to e.g. Puppeteer, so that
// we can do `await page.evaluate(() => done)`
window.done = done;

License

LIL

Readme

Keywords

none

Package Sidebar

Install

npm i tape-modern

Weekly Downloads

20

Version

1.1.2

License

LIL

Unpacked Size

74.5 kB

Total Files

9

Last publish

Collaborators

  • rich_harris