4.3.5 • Published 9 months ago

basictap v4.3.5

Weekly downloads
66
License
MIT
Repository
github
Last release
9 months ago

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

9 months ago

4.3.4

11 months ago

4.3.2

1 year ago

4.3.3

1 year ago

4.0.4

1 year ago

4.2.1

1 year ago

4.0.3

1 year ago

4.2.0

1 year ago

4.0.2

1 year ago

4.3.1

1 year ago

4.1.0

1 year ago

4.3.0

1 year ago

4.1.1

1 year ago

3.4.4

1 year ago

4.0.1

1 year ago

4.0.0

1 year ago

3.4.0

2 years ago

3.4.3

2 years ago

3.4.2

2 years ago

3.4.1

2 years ago

3.3.1

2 years ago

3.2.3

2 years ago

3.2.2

2 years ago

3.2.1

2 years ago

3.2.0

2 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.1.0

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.3.0

3 years ago

2.4.1

3 years ago

2.4.0

3 years ago

2.2.2

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.0

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.4.0

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.2.1

3 years ago

1.1.13

3 years ago

1.1.12

3 years ago

1.1.9

3 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago