You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

167 lines
4.2 KiB

'use strict';
const test = require('tap').test;
const Logger = require('../lib/logger');
const TapReporter = require('../lib/reporters/tap');
test('only call start if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.start = undefined;
logger.start();
t.end();
});
test('only write if start is supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.start = undefined;
logger.write = t.fail;
logger.start();
t.end();
});
test('only call reset if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.reset = undefined;
logger.reset();
t.end();
});
test('only write if reset is supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.reset = undefined;
logger.write = t.fail;
logger.reset();
t.end();
});
test('only call section if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.section = undefined;
logger.section();
t.end();
});
test('only write if section is supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.section = undefined;
logger.write = t.fail;
logger.section();
t.end();
});
test('only call clear if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.clear = undefined;
logger.clear();
t.end();
});
test('only write if clear is supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.clear = undefined;
logger.write = t.fail;
logger.clear();
t.end();
});
test('return false if clear is not supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.clear = undefined;
t.false(logger.clear());
t.end();
});
test('return true if clear is supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.clear = () => {};
t.true(logger.clear());
t.end();
});
test('writes the reporter reset result', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.reset = () => 'test reset';
logger.write = str => {
t.equal(str, 'test reset');
t.end();
};
logger.reset();
});
test('only call unhandledError if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.unhandledError = undefined;
logger.unhandledError();
t.end();
});
test('only write if unhandledError is supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.unhandledError = undefined;
logger.write = t.fail;
logger.unhandledError();
t.end();
});
test('only call finish if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.finish = undefined;
logger.finish();
t.end();
});
test('only write if finish is supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.finish = undefined;
logger.write = t.fail;
logger.finish();
t.end();
});
test('only call write if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.write = undefined;
logger.write();
t.end();
});
test('only call stdout if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.stdout = undefined;
logger.stdout();
t.end();
});
test('don\'t alter data when calling stdout', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.stdout = function (data) {
t.equal(data, 'test data');
t.end();
};
logger.stdout('test data');
});
test('only call stderr if supported by reporter', t => {
const tapReporter = new TapReporter();
const logger = new Logger(tapReporter);
tapReporter.stderr = undefined;
logger.stderr();
t.end();
});