1e1faf3ecfa99178f260695a0e397e0bf31ff027
3 const assert
= require('node:assert');
4 const sinon
= require('sinon');
5 const Logger
= require('../../src/logger');
6 const Config
= require('../../config');
8 describe('Logger', function () {
12 beforeEach(function () {
13 config
= new Config('test');
14 logger
= new Logger(config
);
15 Object
.keys(Logger
.nullLogger
).forEach((level
) => sinon
.stub(logger
.backend
, level
));
18 afterEach(function () {
22 it('logs', function () {
23 logger
.info('testScope', 'message', { baz: 'quux' }, { foo: 1 }, 'more other');
24 assert(logger
.backend
.info
.called
);
27 it('logs BigInts', function () {
28 logger
.info('testScope', 'message', { aBigInteger: BigInt(2) });
29 assert(logger
.backend
.info
.called
);
30 assert(logger
.backend
.info
.args
[0][0].includes('"2"'));
33 it('logs Errors', function () {
34 logger
.error('testScope', 'message', { e: new Error('an error') });
35 assert(logger
.backend
.error
.called
);
36 assert(logger
.backend
.error
.args
[0][0].includes('an error'));
39 it('masks credentials', function () {
40 logger
.info('testScope', 'message', {
44 credential: 'password',
48 assert(logger
.backend
.info
.called
);
49 assert(logger
.backend
.info
.args
[0][0].includes('"username"'));
50 assert(logger
.backend
.info
.args
[0][0].includes('"********"'));