diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2020-09-21 01:00:19 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2020-09-21 01:00:19 +0200 |
| commit | ae85c067634676251e812765c81adfdef8f85f9d (patch) | |
| tree | ea1557df2172aeb30a363afec6a2183f05469d22 /test/loggers/console.js | |
| parent | 58906d77975b35fe93569f8083b90140124f9c41 (diff) | |
Update the code.
Diffstat (limited to 'test/loggers/console.js')
| -rw-r--r-- | test/loggers/console.js | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/test/loggers/console.js b/test/loggers/console.js new file mode 100644 index 0000000..3358837 --- /dev/null +++ b/test/loggers/console.js @@ -0,0 +1,123 @@ +'use strict'; + +const Tap = require('tap'); + +const ConsoleLogger = require('../../lib/loggers/console'); + +// Prepare the test + +const dummyFormatter = { + values: [], + format: function (log) { + + this.values.push(log); + return 'lol'; + } +}; + +const dummyConsole = { + values: { + log: 0, + warn: 0, + error: 0, + info: 0 + }, + _log: function (type, ...logs) { + + this.values[type] += logs.length; + }, + log: function (...logs) { + + this._log('log', ...logs); + }, + warn: function (...logs) { + + this._log('warn', ...logs); + }, + error: function (...logs) { + + this._log('error', ...logs); + }, + info: function (...logs) { + + this._log('info', ...logs); + } +}; + +const logObjectA = { + _timestamp: Date.now() + .134, + _cologneLog: '1.0.0', + _from: 'Dummy Logger', + _level: 6, + _levelString: 'info', + message: 'MessageOne' +}; + +const logObjectB = { + _timestamp: Date.now() + .134, + _cologneLog: '1.0.0', + _from: 'Dummy Logger', + _level: 6, + _levelString: 'info', + message: 'MessageTwo' +}; + +const logs = [logObjectA, logObjectB]; + +const regularLogger = new ConsoleLogger({}); +const overrideLogger = new ConsoleLogger({ + console: dummyConsole +}); +const formattedLogger = new ConsoleLogger({ + console: dummyConsole, + formatter: dummyFormatter +}); + +/** + * TEST: #log() - regular + */ + +Tap.equal(regularLogger.console, global.console, + 'It should default to the global console'); + +/** + * TEST: #log() - override + */ + +logObjectA._level = 5; +logObjectB._level = 6; +overrideLogger.log(...logs); // should go to info + +logObjectA._level = 4; +logObjectB._level = 4; +overrideLogger.log(...logs); // should go to warn + +logObjectA._level = 1; +logObjectB._level = 3; +overrideLogger.log(...logs); // should go to error + +logObjectA._level = 0; +logObjectB._level = 2; +overrideLogger.log(...logs); // should go to error + +logObjectA._level = 7; +logObjectB._level = 8; +overrideLogger.log(...logs); // should go to log + +Tap.equal(dummyConsole.values.log, logs.length, + 'It should send debug messages to console\'s #log'); +Tap.equal(dummyConsole.values.info, logs.length, + 'It should send info and notice messages to console\'s #info'); +Tap.equal(dummyConsole.values.warn, logs.length, + 'It should send warn messages to console\'s #warn'); +Tap.equal(dummyConsole.values.error, logs.length * 2, + 'It should send error messages to console\'s #error'); + +/** + * TEST: #log() - with formatter + */ + +formattedLogger.log(...logs); // should go to log + +Tap.similar(dummyFormatter.values, logs, + 'If available, it should send the objects to the formatter'); |