wa-chat-server
Version:
Watson Assistant powered chat server
93 lines (92 loc) • 4.42 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.LoggerTest = void 0;
const LoggerDriver_1 = require("../../class/Logger/LoggerDriver");
const Logger_1 = require("../../class/Logger/Logger");
const WAChatServerConfigMock_1 = require("../mock/WAChatServerConfigMock");
class LoggerTest {
getLoggingDriver(level, msg, params) {
class LoggingLoggerDriver extends LoggerDriver_1.LoggerDriver {
log(msgLevel, message, parameters) {
return __awaiter(this, void 0, void 0, function* () {
expect(msgLevel).toStrictEqual(level);
expect(message).toStrictEqual(msg);
expect(parameters).toStrictEqual(params);
});
}
}
return LoggingLoggerDriver;
}
getNonLoggingDriver(driverName) {
class NonLoggingLoggerDriver extends LoggerDriver_1.LoggerDriver {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
log(msgLevel, message, parameters) {
return __awaiter(this, void 0, void 0, function* () {
throw new Error(`Driver ${driverName} must not log!`);
});
}
}
return NonLoggingLoggerDriver;
}
getConfig(override = {}) {
return Object.assign(Object.assign({}, new WAChatServerConfigMock_1.WAChatServerConfigMock()), override);
}
localConsoleTest(level) {
return __awaiter(this, void 0, void 0, function* () {
it(`local-console-${level}`, () => __awaiter(this, void 0, void 0, function* () {
expect.assertions(3);
const logger = new Logger_1.Logger(this.getConfig(), null, {
console: this.getLoggingDriver(level, 'MSG', [{ a: 'A' }]),
logdna: this.getNonLoggingDriver('logdna'),
});
yield logger[level]('MSG', { a: 'A' });
}));
});
}
serverLogDNATest(level) {
return __awaiter(this, void 0, void 0, function* () {
it(`server-logdna-${level}`, () => __awaiter(this, void 0, void 0, function* () {
expect.assertions(3);
const logger = new Logger_1.Logger(
// eslint-disable-next-line @typescript-eslint/camelcase
this.getConfig({ logdna_url: 'http://eu.eu', logdna_key: 'KEY', VCAP_APP_PORT: 1111 }), null, {
console: this.getNonLoggingDriver('console'),
logdna: this.getLoggingDriver(level, 'MSG', [{ a: 'A' }]),
});
yield logger[level]('MSG', { a: 'A' });
}));
});
}
localConsoleAndLogDNATest(level) {
return __awaiter(this, void 0, void 0, function* () {
it(`local-console_and_logdna-${level}`, () => __awaiter(this, void 0, void 0, function* () {
expect.assertions(6);
const logger = new Logger_1.Logger(
// eslint-disable-next-line @typescript-eslint/camelcase
this.getConfig({ logdna_url: 'http://eu.eu', logdna_key: 'KEY' }), null, {
console: this.getLoggingDriver(level, 'MSG', [{ a: 'A' }]),
logdna: this.getLoggingDriver(level, 'MSG', [{ a: 'A' }]),
});
yield logger[level]('MSG', { a: 'A' });
}));
});
}
test() {
return __awaiter(this, void 0, void 0, function* () {
this.localConsoleTest('debug');
this.serverLogDNATest('debug');
this.localConsoleAndLogDNATest('debug');
});
}
}
exports.LoggerTest = LoggerTest;
new LoggerTest().test();