UNPKG

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