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.

170 lines
4.1 KiB

'use strict';
var test = require('tap').test;
var Logger = require('../lib/logger');
var tap = require('../lib/reporters/tap');
test('only call start if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.start = undefined;
logger.start();
t.end();
});
test('only write if start is supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.start = undefined;
logger.write = t.fail;
logger.start();
t.end();
});
test('only call reset if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.reset = undefined;
logger.reset();
t.end();
});
test('only write if reset is supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.reset = undefined;
logger.write = t.fail;
logger.reset();
t.end();
});
Improve watch logging (#737) * display current time when mini & verbose reporters finish I'm using toLocaleTimeString() which works even back to Node.js 0.10. Forcing a 24-hour clock because we're geeks. * watcher: restart logger on subsequent runs The CLI starts the logger so the watcher shouldn't reset it on its first run. Restart the logger after resetting, this allows the mini reporter to render its spinner. * better api.run stub in watcher test Return an object for the runStatus, add assertions to verify this object is passed to logger.finish() * assert that r/rs reruns all tests * clear mini reporter in watch mode Clear the mini reporter unless the previous run had failures, or "r\n" was entered on stdin. * consistent empty lines in finish output Always print two empty lines before each error/rejection/exception when the mini and verbose reporters finish. Remove trailing whitespace from stack traces. Always print an empty line after the finish output. Add a test helper to more easily compare line output, with useful debug information. At the moment this new helper is only used for failing tests. * print line if reporter was not be cleared Watch mode won't clear the mini reporter if there were errors, or "r\n" was entered on stdin. The verbose reporter can't be cleared at all. To improve the separation between multiple test runs, write a horizontal line when starting a new test run and the reporter was not cleared. * remove debug output from cli test
9 years ago
test('only call section if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.section = undefined;
logger.section();
t.end();
});
test('only write if section is supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.section = undefined;
logger.write = t.fail;
logger.section();
t.end();
});
test('only call clear if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.clear = undefined;
logger.clear();
t.end();
});
test('only write if clear is supported by reporter', function (t) {
var tapReporter = tap();
var 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', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.clear = undefined;
t.false(logger.clear());
t.end();
});
test('return true if clear is supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.clear = function () {};
t.true(logger.clear());
t.end();
});
test('writes the reporter reset result', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.reset = function () {
return 'test reset';
};
logger.write = function (str) {
t.equal(str, 'test reset');
t.end();
};
logger.reset();
});
test('only call unhandledError if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.unhandledError = undefined;
logger.unhandledError();
t.end();
});
test('only write if unhandledError is supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.unhandledError = undefined;
logger.write = t.fail;
logger.unhandledError();
t.end();
});
test('only call finish if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.finish = undefined;
logger.finish();
t.end();
});
test('only write if finish is supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.finish = undefined;
logger.write = t.fail;
logger.finish();
t.end();
});
test('only call write if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.write = undefined;
logger.write();
t.end();
});
test('only call stdout if supported by reporter', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.stdout = undefined;
logger.stdout();
t.end();
});
test('don\'t alter data when calling stdout', function (t) {
var tapReporter = tap();
var 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', function (t) {
var tapReporter = tap();
var logger = new Logger(tapReporter);
tapReporter.stderr = undefined;
logger.stderr();
t.end();
});