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

4.3.5 • Public • Published

basictap

GitHub code size in bytes GitHub package.json version GitHub js-semistandard-style

Light tap adherent test runner.

  • Asyncronous tests run in parallel
  • Outputs tap syntax
  • Uses built in node assert library

Installation

npm install --save basictap

Features

test.only('will only run this (and other only) tests', t => {});
test.skip('will not run this (or other skip) test', t => {});
test.todo('will not run and will remind you at the end')
test('will run', t => {});

Assertions

Adheres and uses the built in assert library from node.

t.plan(1) // number of expected assertions
t.timeout(1000) // in milliseconds
t.waitFor(() => true), { timeout: 500 }) // continuously try until passes or timesout (in milliseconds)
t.pass()
t.fail()
t.ok(true)
t.notOk(null)
t.equal('test', 'test')
t.notEqual('test', 'no')
t.deepEqual({ a: 1 }, { a: 1 })
t.notDeepEqual({ a: 1 }, { a: 2 })
t.deepStrictEqual({ a: 1 }, { a: 1 })
t.notDeepStrictEqual({ a: 1 }, { a: 2 })
t.strictEqual('test', 'test')
t.notStrictEqual('test', 'no')
t.throws(result, new Error('oh noes'))
t.rejects(result, new Error('oh noes'))
t.doesNotThrow(result, new Error('oh noes'))
t.doesNotReject(result, new Error('oh noes'))
t.match('I will pass', /pass/);
t.doesNotMatch('I will fail', /pass/);

Example

const test = require('basictap');

// default is 1
// setting to 5 will run a maximum of 5 tests at a time
// setting to Infinity will run all tests at once
test.maximumConcurrentTests = Infinity;

test.on('finish', totalAssertionsFailed => console.log('run once all tests have finished'));

test('basic test that passes', t => {
  t.plan(1);

  t.equal(1, 1);
});

test('basic test that assets with a description', t => {
  t.plan(1);

  t.equal(1, 1, 'optional message to describe assertion');
});

test('plan is optional, but recommended', t => {
  t.equal(1, 1);
});

test('basic test that passes with async', async t => {
  t.plan(1);

  const something = await doSomething();

  t.equal(something, 1);
});

test('basic test that passes with timer', async t => {
  t.plan(1);

  setTimeout(() => {
    t.equal(something, 1);
  }, 100);
});

test('cleanup', async t => {
  t.plan(1);

  const server = http.createServer((request, response) => {
    response.end('ok');
  }).listen(8080);

  fetch('http://localhost:8080')
    .then(response => response.text())
    .then(text => {
      t.equal(text, 'ok');
    });

  // this will run once the number of planned tests is reached
  return () => {
    server.close();
  };
});

Readme

Keywords

none

Package Sidebar

Install

npm i basictap

Weekly Downloads

16

Version

4.3.5

License

MIT

Unpacked Size

16.9 kB

Total Files

11

Last publish

Collaborators

  • markwylde