12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- var tap = require("tap");
- var forEach = require("for-each");
- var tape = require("../");
- var concat = require('concat-stream');
-
- tap.test("tape assert.end as callback", function (tt) {
- var test = tape.createHarness({ exit: false });
-
- test.createStream().pipe(concat(function (rows) {
- tt.equal(rows.toString('utf8'), [
- 'TAP version 13',
- '# do a task and write',
- 'ok 1 null',
- 'ok 2 should be equal',
- '# do a task and write fail',
- 'ok 3 null',
- 'ok 4 should be equal',
- 'not ok 5 Error: fail',
- getStackTrace(rows),
- '',
- '1..5',
- '# tests 5',
- '# pass 4',
- '# fail 1'
- ].join('\n') + '\n');
- tt.end();
- }));
-
- test("do a task and write", function (assert) {
- fakeAsyncTask("foo", function (err, value) {
- assert.ifError(err);
- assert.equal(value, "taskfoo");
-
- fakeAsyncWrite("bar", assert.end);
- });
- });
-
- test("do a task and write fail", function (assert) {
- fakeAsyncTask("bar", function (err, value) {
- assert.ifError(err);
- assert.equal(value, "taskbar");
-
- fakeAsyncWriteFail("baz", assert.end);
- });
- });
- });
-
- function fakeAsyncTask(name, cb) {
- cb(null, "task" + name);
- }
-
- function fakeAsyncWrite(name, cb) {
- cb(null);
- }
-
- function fakeAsyncWriteFail(name, cb) {
- cb(new Error("fail"));
- }
-
-
- function getStackTrace(rows) {
- var stacktrace = ' ---\n';
- var extract = false;
- forEach(rows.toString('utf8').split('\n'), function (row) {
- if (!extract) {
- if (row.indexOf('---') > -1) {
- extract = true;
- }
- } else {
- if (row.indexOf('...') > -1) {
- extract = false;
- stacktrace += ' ...';
- } else {
- stacktrace += row + '\n';
- }
-
- }
- });
-
- return stacktrace;
- }
|