auth-api/tests/node_modules/tape/test/objectMode.js
2021-06-23 22:30:45 +02:00

72 lines
1.8 KiB
JavaScript

'use strict';
var tap = require('tap');
var tape = require('../');
var forEach = require('for-each');
var through = require('through');
tap.test('object results', function (assert) {
var printer = through({ objectMode: true });
var objects = [];
printer.write = function (obj) {
objects.push(obj);
};
printer.end = function (obj) {
if (obj) objects.push(obj);
var todos = 0;
var skips = 0;
var testIds = [];
var endIds = [];
var asserts = 0;
assert.equal(objects.length, 13);
forEach(objects, function (obj) {
if (obj.type === 'assert') {
asserts++;
} else if (obj.type === 'test') {
testIds.push(obj.id);
if (obj.skip) {
skips++;
} else if (obj.todo) {
todos++;
}
} else if (obj.type === 'end') {
endIds.push(obj.text);
// test object should exist
assert.notEqual(testIds.indexOf(obj.test), -1);
}
});
assert.equal(asserts, 5);
assert.equal(skips, 1);
assert.equal(todos, 2);
assert.equal(testIds.length, endIds.length);
assert.end();
};
tape.createStream({ objectMode: true }).pipe(printer);
tape('parent', function (t1) {
t1.equal(true, true);
t1.test('child1', {skip: true}, function (t2) {
t2.equal(true, true);
t2.equal(true, false);
t2.end();
});
t1.test('child2', {todo: true}, function (t3) {
t3.equal(true, false);
t3.equal(true, true);
t3.end();
});
t1.test('child3', {todo: true});
t1.equal(true, true);
t1.equal(true, true);
t1.end();
});
});