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();
  };
});

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
4.3.50latest

Version History

VersionDownloads (Last 7 Days)Published
4.3.50
4.3.40
4.3.30
4.3.20
4.3.10
4.3.00
4.2.10
4.2.00
4.1.10
4.1.00
4.0.40
4.0.30
4.0.20
4.0.10
4.0.00
3.4.40
3.4.30
3.4.20
3.4.10
3.4.00
3.3.10
3.2.30
3.2.20
3.2.10
3.2.00
3.1.00
3.0.40
3.0.30
3.0.20
3.0.10
3.0.00
2.4.10
2.4.00
2.3.00
2.2.20
2.2.10
2.2.00
2.1.00
2.0.20
2.0.10
2.0.00
1.4.00
1.3.15
1.3.00
1.2.10
1.2.00
1.1.130
1.1.120
1.1.110
1.1.100
1.1.90
1.1.80
1.1.70
1.1.60
1.1.50
1.1.40
1.1.30
1.1.20
1.1.10
1.1.00
1.0.40
1.0.30
1.0.20
1.0.10
1.0.00

Package Sidebar

Install

npm i basictap

Weekly Downloads

5

Version

4.3.5

License

MIT

Unpacked Size

16.9 kB

Total Files

11

Last publish

Collaborators

  • markwylde