UNPKG

simple-leveled-log-methods

Version:

a simple and opinionated logging library. plays well with aws lambda + cloudwatch.

50 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("./constants"); const generateLogMethod_1 = require("./generateLogMethod"); describe('generateLogMethod', () => { beforeEach(() => jest.clearAllMocks()); it('should generate a method that outputs to console.log if below warn level', () => { const spy = jest.spyOn(console, 'log'); const logError = (0, generateLogMethod_1.generateLogMethod)({ level: constants_1.LogLevel.INFO, minimalLogLevel: constants_1.LogLevel.DEBUG, }); logError('testMessage'); expect(spy).toHaveBeenCalledTimes(1); }); it('should generate a method that outputs to console.warn if at or above warn level', () => { const spy = jest.spyOn(console, 'warn'); const logError = (0, generateLogMethod_1.generateLogMethod)({ level: constants_1.LogLevel.ERROR, minimalLogLevel: constants_1.LogLevel.DEBUG, }); logError('testMessage'); expect(spy).toHaveBeenCalledTimes(1); }); it('should generate a method that outputs timestamp, level, message, and metadata', () => { const spy = jest.spyOn(console, 'warn'); const logError = (0, generateLogMethod_1.generateLogMethod)({ level: constants_1.LogLevel.ERROR, minimalLogLevel: constants_1.LogLevel.DEBUG, }); logError('testMessage', { nested: { object: true } }); expect(spy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledWith(expect.objectContaining({ level: constants_1.LogLevel.ERROR, message: 'testMessage', metadata: JSON.stringify({ nested: { object: true } }), })); expect(spy.mock.calls[0][0]).toHaveProperty('timestamp'); }); it('should not output anything if level is below minimum', () => { const spy = jest.spyOn(console, 'log'); const logDebug = (0, generateLogMethod_1.generateLogMethod)({ level: constants_1.LogLevel.DEBUG, minimalLogLevel: constants_1.LogLevel.WARN, }); logDebug('testMessage'); expect(spy).not.toHaveBeenCalled(); }); }); //# sourceMappingURL=generateLogMethod.test.js.map