pg-patch
Version:
PostgreSQL patching made easy.
86 lines (67 loc) • 2.69 kB
JavaScript
;
const common = require('../../../lib/common');
const pgPatchConsole = require("../../../lib/reporters/console-reporter");
describe("consoleReporter", function() {
it("creation", function () {
let tmpConsole;
expect(() => {
tmpConsole = new pgPatchConsole();
}).not.toThrow();
});
it("configuration", function () {
spyOn(pgPatchConsole.prototype, 'createConsoleInvokers').and.callThrough();
let tmpConsole = new pgPatchConsole();
//creates handlers during creation
expect(pgPatchConsole.prototype.createConsoleInvokers).toHaveBeenCalled();
//default
expect(tmpConsole.logLevel).toEqual(common.logLevel.INFO);
expect(tmpConsole.enableColorfulLogs).toEqual(true);
//config based
tmpConsole = new pgPatchConsole({
logLevel: 'LOG',
enableColorfulLogs: false
});
expect(tmpConsole.logLevel).toEqual(common.logLevel.LOG);
expect(tmpConsole.enableColorfulLogs).toEqual(false);
//wrong values go to default
tmpConsole = new pgPatchConsole({
logLevel: 'XYZ'
});
expect(tmpConsole.logLevel).toEqual(common.logLevel.INFO);
});
it("handlers creation", function () {
let mock = function(){};
mock.prototype = pgPatchConsole.prototype;
let mockInstance = new mock();
let logLvlKeys = Object.keys(common.logLevel);
logLvlKeys.forEach(lvl => {
expect(mockInstance[lvl.toLowerCase()]).not.toBeDefined();
});
mockInstance.createConsoleInvokers();
logLvlKeys.forEach(lvl => {
expect(mockInstance[lvl.toLowerCase()]).toBeDefined();
});
});
/*describe("handlers", function () {
let tmpConsole;
beforeEach(function(){
tmpConsole = new pgPatchConsole({
logLevel: 'DEBUG',
enableColorfulLogs: false
});
spyOn(console, 'log'); //.and.callThrough();
for(let lvl in common.logLevel){
spyOn(tmpConsole, lvl.toLowerCase()).and.callThrough();
}
});
it("onMsg", function(){
for(let lvl in common.logLevel){
if(lvl !== 'NONE'){
tmpConsole.onMsg(`LOG:${lvl}`, lvl);
expect(tmpConsole[lvl.toLowerCase()]).toHaveBeenCalled();
expect(console.log).toHaveBeenCalledWith(`[${lvl}][pg-patcher]`, lvl);
}
}
});
});*/
});