X-Git-Url: http://git.squeep.com/?p=websub-hub;a=blobdiff_plain;f=test%2Fsrc%2Flogger.js;h=47017dd52e58fcbb5a74c7f8147601ca597f85d5;hp=fc602aaec85eb086a4ac446b4f97fd5b7b16ef48;hb=2c38f18a33a3d1e37994cdbcf4aa1397a241ab66;hpb=c37d8040d243375b0344d605444d0614a4d5f5d7 diff --git a/test/src/logger.js b/test/src/logger.js index fc602aa..47017dd 100644 --- a/test/src/logger.js +++ b/test/src/logger.js @@ -2,6 +2,7 @@ 'use strict'; const assert = require('assert'); +const sinon = require('sinon'); // eslint-disable-line node/no-unpublished-require const Logger = require('../../src/logger'); const Config = require('../../config'); @@ -11,46 +12,32 @@ describe('Logger', function () { beforeEach(function () { config = new Config('test'); + logger = new Logger(config); + Object.keys(Logger.nullLogger).forEach((level) => sinon.stub(logger.backend, level)); }); - it('logs', function () { - logger = new Logger(config); - logger.info('testScope', 'message', { baz: 'quux' }, { foo: 1 }, 'more other'); + afterEach(function () { + sinon.restore(); }); - it('stubs missing levels', function () { - const backend = {}; - logger = new Logger(config, backend); - assert.strictEqual(typeof logger.info, 'function'); + it('logs', function () { + logger.info('testScope', 'message', { baz: 'quux' }, { foo: 1 }, 'more other'); + assert(logger.backend.info.called); }); it('logs BigInts', function () { - logger = new Logger(config); logger.info('testScope', 'message', { aBigInteger: BigInt(2) }); + assert(logger.backend.info.called); + assert(logger.backend.info.args[0][0].includes('"2"')); }); it('logs Errors', function () { - logger = new Logger(config); logger.error('testScope', 'message', { e: new Error('an error') }); - }); - - it('covers config error', function () { - config.logger.ignoreBelowLevel = 'not a level'; - try { - logger = new Logger(config); - assert.fail('expected RangeError here'); - } catch (e) { - assert(e instanceof RangeError); - } - }); - - it('covers empty fields', function () { - logger = new Logger(config); - logger.info(); + assert(logger.backend.error.called); + assert(logger.backend.error.args[0][0].includes('an error')); }); it('masks credentials', function () { - logger = new Logger(config); logger.info('testScope', 'message', { ctx: { parsedBody: { @@ -59,6 +46,9 @@ describe('Logger', function () { }, }, }); + assert(logger.backend.info.called); + assert(logger.backend.info.args[0][0].includes('"username"')); + assert(logger.backend.info.args[0][0].includes('"********"')); }); }); // Logger