176 lines
4.1 KiB
JavaScript
176 lines
4.1 KiB
JavaScript
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();
|
|
});
|
|
});
|