Socket
Socket
Sign inDemoInstall

tap-parser

Package Overview
Dependencies
1
Maintainers
1
Versions
105
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

tap-parser


Version published
Weekly downloads
459K
decreased by-4.45%
Maintainers
1
Created
Weekly downloads
 

Package description

What is tap-parser?

The tap-parser npm package is a TAP (Test Anything Protocol) parser for Node.js. It allows you to parse TAP output, which is a standard format for test results, and provides a way to handle the parsed data programmatically.

What are tap-parser's main functionalities?

Parsing TAP output

This feature allows you to parse TAP output and handle assertions and results. The code sample demonstrates how to create a parser instance, listen for 'assert' and 'complete' events, and parse a simple TAP string.

const Parser = require('tap-parser');
const parser = new Parser();

parser.on('assert', assert => {
  console.log('assertion:', assert);
});

parser.on('complete', results => {
  console.log('results:', results);
});

parser.end('TAP version 13
ok 1 - this is fine
not ok 2 - this is not fine
1..2
');

Handling TAP comments

This feature allows you to handle comments in TAP output. The code sample demonstrates how to listen for 'comment' events and parse a TAP string that includes a comment.

const Parser = require('tap-parser');
const parser = new Parser();

parser.on('comment', comment => {
  console.log('comment:', comment);
});

parser.end('TAP version 13
# this is a comment
ok 1 - this is fine
');

Handling TAP plan

This feature allows you to handle the TAP plan, which specifies the number of tests expected. The code sample demonstrates how to listen for 'plan' events and parse a TAP string that includes a plan.

const Parser = require('tap-parser');
const parser = new Parser();

parser.on('plan', plan => {
  console.log('plan:', plan);
});

parser.end('TAP version 13
1..2
ok 1 - this is fine
ok 2 - this is also fine
');

Other packages similar to tap-parser

Readme

Source

tap-parser

parse the test anything protocol

build status

browser support

example

var parser = require('tap-parser');
var p = parser(function (results) {
    console.dir(results);
});

process.stdin.pipe(p);

given some TAP-formatted input:

$ node test.js
TAP version 13
# beep
ok 1 should be equal
ok 2 should be equivalent
# boop
ok 3 should be equal
ok 4 (unnamed assert)

1..4
# tests 4
# pass  4

# ok

parse the output:

$ node test.js | node parse.js
{ ok: true,
  asserts: 
   [ { ok: true, number: 1, name: 'should be equal' },
     { ok: true, number: 2, name: 'should be equivalent' },
     { ok: true, number: 3, name: 'should be equal' },
     { ok: true, number: 4, name: '(unnamed assert)' } ],
  pass: 
   [ { ok: true, number: 1, name: 'should be equal' },
     { ok: true, number: 2, name: 'should be equivalent' },
     { ok: true, number: 3, name: 'should be equal' },
     { ok: true, number: 4, name: '(unnamed assert)' } ],
  fail: [],
  todo: [],
  errors: [],
  plan: { start: 1, end: 4 } }

methods

var parser = require('tap-parser')

var p = parser(cb)

Return a writable stream p that emits parse events.

If cb is given it will listen for the 'results' event.

events

p.on('results', function (results) {})

results.errors is an array containing any parse errors, such as out of order assertions or missing plans.

p.on('assert', function (assert) {})

Every /^(not )?ok\b/ line will emit an 'assert' event.

Every assert object has these keys:

  • assert.ok - true if the assertion succeeded, false if failed
  • assert.number - the assertion number
  • assert.name - optional short description of the assertion

and may also have

  • assert.todo - optional description of why the assertion failure is not a problem.

When results are returned, each assert object will have been appended to the list asserts and one of (pass, fail, todo).

p.on('comment', function (comment) {})

Every /^# (.+)/ line will emit the string contents of comment.

p.on('plan', function (plan) {})

Every /^\d+\.\.\d+/ line emits a 'plan' event for the test numbers plan.start through plan.end, inclusive.

p.on('version', function (version) {})

A /^TAP version (\d+)/ line emits a 'version' event with a version number or string.

install

With npm do:

npm install tap-parser

You can use browserify to require('tap-parser') in the browser.

license

MIT

Keywords

FAQs

Last updated on 06 Nov 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc