tap-to-tapson

1.0.0 • Public • Published

tap-to-tapson

Reads TAP 13, produces tapson (v1.0.x) as equivalent as possible.

<tap-producer> | tap-to-tapson | <tapson-consumer>

Also works as a node module, with streams:

var tapToTapson = require("tap-to-tapson")();
process.stdin.pipe(tapToTapson).pipe(process.stdout);

Mapping examples

Comments are interpreted as a "heading" for the expected properties of the following tests, until the next comment appears.

TAP version 13
ok 1 before any headings
# Serious business
ok 2 should throw
ok 3
ok 4
# Even more serious
ok 5
ok 6 what
1..6
{"ok":true,"expected":"before any headings"}
{"ok":true,"expected":"Serious business: should throw"}
{"ok":true,"expected":"Serious business"}
{"ok":true,"expected":"Serious business"}
{"ok":true,"expected":"Even more serious"}
{"ok":true,"expected":"Even more serious: what"}

Tests marked "TODO" or "SKIP" fail with actual-property set to reason given.

TAP version 13
not ok 1 answer to life the universe and everything # TODO not written yet
not ok 2 database smoketest # SKIP database not configured
1..2
{"ok":false,"expected":"answer to life the universe and everything","actual":"TODO: not written yet"}
{"ok":false,"expected":"database smoketest","actual":"SKIP: database not configured"}

Any assert's YAML block goes in the actual property. ("TODO" and "SKIP"-directives are ignored here.)

TAP Version 13
not ok 1 Resolve address
  ---
  message: "Failed with error 'hostname peebles.example.com not found'"
  severity: fail
  data:
    got:
      hostname: 'peebles.example.com'
      address: ~
    expected:
      hostname: 'peebles.example.com'
      address: '85.193.201.85'
  ...
1..1
{"ok":false,"expected":"Resolve address","actual":"message: \"Failed with error 'hostname peebles.example.com not found'\"\nseverity: fail\ndata:\n  got:\n    hostname: peebles.example.com\n    address: null\n  expected:\n    hostname: peebles.example.com\n    address: 85.193.201.85\n"}

A TAP plan given ahead of time becomes a set of tapson planned tests. (The output is representative. The ids are random but match the test results.)

TAP version 13
1..3
ok 1
ok 2
ok 3
{"id":"2654782ca1d79720181551c031c7ed3f3e157634"}
{"id":"314cf30f5c39abb4798bbbf30327be092bd765bc"}
{"id":"a010bf964ecb2709bd1c996630c65b28dff1e99d"}
{"id":"2654782ca1d79720181551c031c7ed3f3e157634","ok":true}
{"id":"314cf30f5c39abb4798bbbf30327be092bd765bc","ok":true}
{"id":"a010bf964ecb2709bd1c996630c65b28dff1e99d","ok":true}

Readme

Keywords

none

Package Sidebar

Install

npm i tap-to-tapson

Weekly Downloads

1

Version

1.0.0

License

ISC

Last publish

Collaborators

  • an