| var concat = require('concat-stream'); |
| var tap = require('tap'); |
| var tape = require('../'); |
| |
| // Exploratory test to ascertain proper output when no t.comment() call |
| // is made. |
| tap.test('no comment', function (assert) { |
| assert.plan(1); |
| |
| var verify = function (output) { |
| assert.equal(output.toString('utf8'), [ |
| 'TAP version 13', |
| '# no comment', |
| '', |
| '1..0', |
| '# tests 0', |
| '# pass 0', |
| '', |
| '# ok', |
| '' |
| ].join('\n')); |
| }; |
| |
| var test = tape.createHarness(); |
| test.createStream().pipe(concat(verify)); |
| test('no comment', function (t) { |
| t.end(); |
| }); |
| }); |
| |
| // Exploratory test, can we call t.comment() passing nothing? |
| tap.test('missing argument', function (assert) { |
| assert.plan(1); |
| var test = tape.createHarness(); |
| test.createStream(); |
| test('missing argument', function (t) { |
| try { |
| t.comment(); |
| t.end(); |
| } catch (err) { |
| assert.equal(err.constructor, TypeError); |
| } finally { |
| assert.end(); |
| } |
| }); |
| }); |
| |
| // Exploratory test, can we call t.comment() passing nothing? |
| tap.test('null argument', function (assert) { |
| assert.plan(1); |
| var test = tape.createHarness(); |
| test.createStream(); |
| test('null argument', function (t) { |
| try { |
| t.comment(null); |
| t.end(); |
| } catch (err) { |
| assert.equal(err.constructor, TypeError); |
| } finally { |
| assert.end(); |
| } |
| }); |
| }); |
| |
| |
| // Exploratory test, how is whitespace treated? |
| tap.test('whitespace', function (assert) { |
| assert.plan(1); |
| |
| var verify = function (output) { |
| assert.equal(output.toString('utf8'), [ |
| 'TAP version 13', |
| '# whitespace', |
| '# ', |
| '# a', |
| '# a', |
| '# a', |
| '', |
| '1..0', |
| '# tests 0', |
| '# pass 0', |
| '', |
| '# ok', |
| '' |
| ].join('\n')); |
| }; |
| |
| var test = tape.createHarness(); |
| test.createStream().pipe(concat(verify)); |
| test('whitespace', function (t) { |
| t.comment(' '); |
| t.comment(' a'); |
| t.comment('a '); |
| t.comment(' a '); |
| t.end(); |
| }); |
| }); |
| |
| // Exploratory test, how about passing types other than strings? |
| tap.test('non-string types', function (assert) { |
| assert.plan(1); |
| |
| var verify = function (output) { |
| assert.equal(output.toString('utf8'), [ |
| 'TAP version 13', |
| '# non-string types', |
| '# true', |
| '# false', |
| '# 42', |
| '# 6.66', |
| '# [object Object]', |
| '# [object Object]', |
| '# [object Object]', |
| '# function ConstructorFunction() {}', |
| '', |
| '1..0', |
| '# tests 0', |
| '# pass 0', |
| '', |
| '# ok', |
| '' |
| ].join('\n')); |
| }; |
| |
| var test = tape.createHarness(); |
| test.createStream().pipe(concat(verify)); |
| test('non-string types', function (t) { |
| t.comment(true); |
| t.comment(false); |
| t.comment(42); |
| t.comment(6.66); |
| t.comment({}); |
| t.comment({"answer": 42}); |
| function ConstructorFunction() {} |
| t.comment(new ConstructorFunction()); |
| t.comment(ConstructorFunction); |
| t.end(); |
| }); |
| }); |
| |
| tap.test('multiline string', function (assert) { |
| assert.plan(1); |
| |
| var verify = function (output) { |
| assert.equal(output.toString('utf8'), [ |
| 'TAP version 13', |
| '# multiline strings', |
| '# a', |
| '# b', |
| '# c', |
| '# d', |
| '', |
| '1..0', |
| '# tests 0', |
| '# pass 0', |
| '', |
| '# ok', |
| '' |
| ].join('\n')); |
| }; |
| |
| var test = tape.createHarness(); |
| test.createStream().pipe(concat(verify)); |
| test('multiline strings', function (t) { |
| t.comment([ |
| 'a', |
| 'b', |
| ].join('\n')); |
| t.comment([ |
| 'c', |
| 'd', |
| ].join('\r\n')); |
| t.end(); |
| }); |
| }); |