winston-gelf-transporter
Version:
A Winston transporter for sending GELF messages
65 lines • 2.92 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const gelf_pro_1 = __importDefault(require("gelf-pro"));
const WinstonGelfTransporter_1 = __importDefault(require("../WinstonGelfTransporter"));
describe('WinstonGelfTransporter', () => {
describe('getLogMessage', () => {
let transporter;
beforeAll(() => {
transporter = new WinstonGelfTransporter_1.default({});
});
it(`returns correct string when info.message is a string
and info has no extended properties`, () => {
// This is the case of winston.log('Hello World!')
const hello = 'Hello World!';
expect(transporter.getLogMessage({ level: 1, message: hello })).toBe(hello);
});
it('returns the error object when message is an error', () => {
// This is the case of winston.log(new Error());
const parameter = { level: 1, message: new Error() };
expect(transporter.getLogMessage(parameter)).toBe(parameter.message);
});
it(`calls the serializer with info.message when info.message is
an object`, () => {
// This is the case of winston.log({ some: 'object' });
const parameter = { level: 1, message: { some: 'object' } };
const response = transporter.getLogMessage(parameter);
expect(response).toBe(JSON.stringify(parameter.message));
});
it(`calls the serializer with all props but level when passed
a non error info object with extended properties`, () => {
// This is the case of winston.log('Hi!', { some: 'object' })
const parameter = { level: 1, message: 'Hi!', some: 'object' };
expect(transporter.getLogMessage(parameter)).toBe(JSON.stringify({
message: parameter.message,
some: parameter.some
}));
});
});
describe('log', () => {
let transporter;
beforeAll(() => {
gelf_pro_1.default.message = jest
.fn()
.mockImplementation((message, level, extra, next) => {
if (!next)
return extra();
return next();
});
transporter = new WinstonGelfTransporter_1.default({});
});
it('calls message with correct parameters', () => {
const params = { level: 'error', message: 'Hello World!' };
function fn() { }
transporter.log(params, fn);
expect(gelf_pro_1.default.message).toBeCalledWith(transporter.getLogMessage(params), 3, fn);
});
afterEach(() => {
jest.resetAllMocks();
});
});
});
//# sourceMappingURL=WinstonGelfTransporter.spec.js.map