aono-file-handler
Version:
Aono handler that write to a log file with support for custom formatters and log rotation.
134 lines • 4.79 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const LogstashFormatter_1 = require("./LogstashFormatter");
describe('LogstashFormatter', () => {
let testedFormatter;
describe('when created without any consts', () => {
beforeEach(() => {
testedFormatter = new LogstashFormatter_1.default('test_');
});
it('contains no consts', () => {
testedFormatter.consts.should.eql({});
});
it('formats an entry without data', () => {
const entry = {
timestamp: 0,
logger: 'test',
level: 'info',
message: 'hello, file!',
data: {},
};
const formatted = testedFormatter.format(entry);
formatted.should.equal('{ ' +
'"timestamp": "1970-01-01T00:00:00.000Z", ' +
'"logger": "test", ' +
'"level": "info", ' +
'"message": "hello, file!"' +
' }\n');
});
it('formats an entry with data', () => {
const entry = {
timestamp: 0,
logger: 'test',
level: 'debug',
message: 'hello, file!',
data: {
number: 1,
},
};
const formatted = testedFormatter.format(entry);
formatted.should.equal('{ ' +
'"timestamp": "1970-01-01T00:00:00.000Z", ' +
'"logger": "test", ' +
'"level": "debug", ' +
'"message": "hello, file!", ' +
'"test_number": 1' +
' }\n');
});
it('formats an entry with Error in data', () => {
const entry = {
timestamp: 0,
logger: 'test',
level: 'trace',
message: 'hello, file!',
data: {
error: new Error(),
},
};
entry.data.error.stack = 'a\na\na';
const formatted = testedFormatter.format(entry);
formatted.should.equal('{ ' +
'"timestamp": "1970-01-01T00:00:00.000Z", ' +
'"logger": "test", ' +
'"level": "trace", ' +
'"message": "hello, file!", ' +
'"test_error": ["a","a","a"]' +
' }\n');
});
it('formats an entry containing utf character', () => {
const entry = {
timestamp: 10,
logger: 'test',
level: 'warn',
message: '☃',
data: {},
};
const formatted = testedFormatter.format(entry);
formatted.should.equal('{ ' +
'"timestamp": "1970-01-01T00:00:00.010Z", ' +
'"logger": "test", ' +
'"level": "warn", ' +
'"message": "\\u2603"' +
' }\n');
});
});
describe('when created with some consts', () => {
const consts = {
author: 'Maciej',
};
beforeEach(() => {
testedFormatter = new LogstashFormatter_1.default('test_', consts);
});
it('contains proper consts', () => {
testedFormatter.consts.should.eql(consts);
});
it('formats an entry without data', () => {
const entry = {
timestamp: 0,
logger: 'test',
level: 'error',
message: 'hello, file!',
data: {},
};
const formatted = testedFormatter.format(entry);
formatted.should.equal('{ ' +
'"timestamp": "1970-01-01T00:00:00.000Z", ' +
'"logger": "test", ' +
'"level": "error", ' +
'"message": "hello, file!", ' +
'"author": "Maciej"' +
' }\n');
});
it('formats an entry with data', () => {
const entry = {
timestamp: 0,
logger: 'test',
level: 'info',
message: 'hello, file!',
data: {
number: 1,
},
};
const formatted = testedFormatter.format(entry);
formatted.should.equal('{ ' +
'"timestamp": "1970-01-01T00:00:00.000Z", ' +
'"logger": "test", ' +
'"level": "info", ' +
'"message": "hello, file!", ' +
'"author": "Maciej", ' +
'"test_number": 1' +
' }\n');
});
});
});
//# sourceMappingURL=LogstashFormatter.spec.js.map