wa-chat-server
Version:
Watson Assistant powered chat server
106 lines (105 loc) • 4.71 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoggerDriverConsoleTest = void 0;
const LoggerDriverConsole_1 = require("../../class/Logger/LoggerDriverConsole");
const WAChatServerConfigMock_1 = require("../mock/WAChatServerConfigMock");
class LoggerDriverConsoleTest {
getConfig(configOverride = {}) {
const retVal = new WAChatServerConfigMock_1.WAChatServerConfigMock();
Object.assign(retVal, configOverride);
return retVal;
}
getDriver(level, msg, params, paramsToMatch = null, configOverride = {}) {
return new LoggerDriverConsole_1.LoggerDriverConsole(this.getConfig(configOverride), {
[level]: (message, ...parameters) => {
const matches = /^\[([^\]]+)\] (.*)$/.exec(message);
if (!matches) {
throw new Error('Log message does not have expected format (with prepended time)');
}
expect(matches[2]).toStrictEqual(msg);
expect(parameters).toStrictEqual(paramsToMatch === null ? params : paramsToMatch);
},
});
}
constructorTest() {
return __awaiter(this, void 0, void 0, function* () {
it('constructor', () => {
expect.assertions(1);
try {
new LoggerDriverConsole_1.LoggerDriverConsole(this.getConfig());
expect(true).toStrictEqual(true);
}
catch (e) {
console.error(e.toString());
}
});
});
}
logTest(level) {
return __awaiter(this, void 0, void 0, function* () {
it(`log-${level}`, () => __awaiter(this, void 0, void 0, function* () {
expect.assertions(2);
const msg = 'MSG';
const params = [{ a: 'A' }, { b: 'B' }];
const driver = this.getDriver(level, msg, params);
try {
yield driver.log(level, msg, params);
}
catch (e) {
console.error(e.toString());
}
}));
});
}
// On IBM cloud objects must be logged as strings to prevent logging of not fully-expanded objects
logOnIbmCloudTest() {
return __awaiter(this, void 0, void 0, function* () {
it('log-on-ibm-cloud-one-param', () => __awaiter(this, void 0, void 0, function* () {
const msg = 'MSG';
const params = [{ a: 'A' }];
const paramsToLog = ["{ a: 'A' }"];
const configOverride = { VCAP_APP_PORT: 1111 };
const driver = this.getDriver('info', msg, params, paramsToLog, configOverride);
try {
yield driver.log('info', msg, params);
}
catch (e) {
console.error(e.toString());
}
}));
it('log-on-ibm-cloud-more-params', () => __awaiter(this, void 0, void 0, function* () {
const msg = 'MSG';
const params = [{ a: 'A' }, { b: 'B' }];
const paramsToLog = ["[ { a: 'A' }, { b: 'B' } ]"];
const configOverride = { VCAP_APP_PORT: 1111 };
const driver = this.getDriver('info', msg, params, paramsToLog, configOverride);
try {
yield driver.log('info', msg, params);
}
catch (e) {
console.error(e.toString());
}
}));
});
}
test() {
return __awaiter(this, void 0, void 0, function* () {
this.constructorTest();
['debug', 'info', 'warn', 'error'].forEach((level) => {
this.logTest(level);
});
this.logOnIbmCloudTest();
});
}
}
exports.LoggerDriverConsoleTest = LoggerDriverConsoleTest;
new LoggerDriverConsoleTest().test();