1 | var tap = require('tap');
|
2 | var tape = require('../');
|
3 | var forEach = require('for-each');
|
4 | var through = require('through');
|
5 |
|
6 | tap.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 |
|
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 | });
|