]> git.r.bdr.sh - rbdr/cologne/blame - test/cologne/logger/console.js
Recover from npm package
[rbdr/cologne] / test / cologne / logger / console.js
CommitLineData
58906d77
RBR
1'use strict';
2
3let tap = require('tap');
4
5let ConsoleLogger = require('../../../lib/cologne/logger/console');
6
7// Prepare the test
8let dummyFormatter, dummyConsole, logObjectA, logObjectB, regularLogger,
9 overrideLogger, formattedLogger, params;
10
11dummyFormatter = {
12 values: [],
13 format: function (logObject) {
14 this.values.push(logObject);
15 return 'lol';
16 }
17};
18
19dummyConsole = {
20 values: {},
21 _log: function (type, args) {
22 this.values[type] = args;
23 },
24 log: function() {
25 this._log('log', Array.prototype.splice.call(arguments, [0]));
26 },
27 warn: function() {
28 this._log('warn', Array.prototype.splice.call(arguments, [0]));
29 },
30 error: function() {
31 this._log('error', Array.prototype.splice.call(arguments, [0]));
32 },
33 info: function() {
34 this._log('info', Array.prototype.splice.call(arguments, [0]));
35 }
36};
37
38logObjectA = {
39 _timestamp: Date.now() + .134,
40 _cologneLog: '1.0.0',
41 _from: 'Dummy Logger',
42 _level: 6,
43 _levelString: 'info',
44 message: 'MessageOne'
45};
46
47logObjectB = {
48 _timestamp: Date.now() + .134,
49 _cologneLog: '1.0.0',
50 _from: 'Dummy Logger',
51 _level: 6,
52 _levelString: 'info',
53 message: 'MessageTwo'
54};
55
56params = [logObjectA, logObjectB];
57
58regularLogger = new ConsoleLogger({});
59overrideLogger = new ConsoleLogger({
60 console: dummyConsole
61});
62formattedLogger = new ConsoleLogger({
63 console: dummyConsole,
64 formatter: dummyFormatter
65});
66
67/**
68 * TEST: #log() - regular
69 */
70
71tap.equal(regularLogger.console, global.console,
72 'It should default to the global console');
73
74/**
75 * TEST: #log() - override
76 */
77
78logObjectA._level = 5;
79logObjectB._level = 6;
80overrideLogger.log.apply(overrideLogger, params); // should go to info
81
82logObjectA._level = 4;
83logObjectB._level = 4;
84overrideLogger.log.apply(overrideLogger, params); // should go to warn
85
86logObjectA._level = 1;
87logObjectB._level = 3;
88overrideLogger.log.apply(overrideLogger, params); // should go to error
89
90logObjectA._level = 7;
91logObjectB._level = 7;
92overrideLogger.log.apply(overrideLogger, params); // should go to log
93
94tap.equal(dummyConsole.values.log.length, params.length,
95 'It should send debug messages to console\'s #log');
96tap.equal(dummyConsole.values.info.length, params.length,
97 'It should send info and notice messages to console\'s #info');
98tap.equal(dummyConsole.values.warn.length, params.length,
99 'It should send warn messages to console\'s #warn');
100tap.equal(dummyConsole.values.error.length, params.length,
101 'It should send error messages to console\'s #error');
102
103/**
104 * TEST: #log() - with formatter
105 */
106
107formattedLogger.log.apply(formattedLogger, params); // should go to log
108
109tap.similar(dummyFormatter.values, params,
110 'If available, it should send the objects to the formatter');