UNPKG

1.89 kBJavaScriptView Raw
1'use strict';
2
3var tap = require('tap');
4var tape = require('../');
5var forEach = require('for-each');
6var through = require('through');
7
8tap.test('object results', function (assert) {
9 var printer = through({ objectMode: true });
10 var objects = [];
11
12 printer.write = function (obj) {
13 objects.push(obj);
14 };
15
16 printer.end = function (obj) {
17 if (obj) objects.push(obj);
18
19 var todos = 0;
20 var skips = 0;
21 var testIds = [];
22 var endIds = [];
23 var asserts = 0;
24
25 assert.equal(objects.length, 13);
26
27 forEach(objects, function (obj) {
28 if (obj.type === 'assert') {
29 asserts++;
30 } else if (obj.type === 'test') {
31 testIds.push(obj.id);
32
33 if (obj.skip) {
34 skips++;
35 } else if (obj.todo) {
36 todos++;
37 }
38 } else if (obj.type === 'end') {
39 endIds.push(obj.text);
40 // test object should exist
41 assert.notEqual(testIds.indexOf(obj.test), -1);
42 }
43 });
44
45 assert.equal(asserts, 5);
46 assert.equal(skips, 1);
47 assert.equal(todos, 2);
48 assert.equal(testIds.length, endIds.length);
49 assert.end();
50 };
51
52 tape.createStream({ objectMode: true })
53 .pipe(printer);
54
55 tape('parent', function (t1) {
56 t1.equal(true, true);
57 t1.test('child1', {skip: true}, function (t2) {
58 t2.equal(true, true);
59 t2.equal(true, false);
60 t2.end();
61 });
62 t1.test('child2', {todo: true}, function (t3) {
63 t3.equal(true, false);
64 t3.equal(true, true);
65 t3.end();
66 });
67 t1.test('child3', {todo: true});
68 t1.equal(true, true);
69 t1.equal(true, true);
70 t1.end();
71 });
72});