UNPKG

wa-chat-server

Version:

Watson Assistant powered chat server

67 lines (66 loc) 3.04 kB
"use strict"; 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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoggerDriverMock = void 0; const assert_1 = __importDefault(require("assert")); const LoggerDriver_1 = require("../../class/Logger/LoggerDriver"); const LoggerDriverMockCall_1 = require("./LoggerDriverMockCall"); // Logger used for tests class LoggerDriverMock extends LoggerDriver_1.LoggerDriver { /* * By default all log messages are are checked against the * logger configuration (check == true) and it is not written to the console * (silence == true) * * For test debugging it may be handy to set silence = false */ constructor(check = true, silence = true) { super(); this.check = check; this.silence = silence; this.expectedCalls = []; this.callNum = 0; } // Adds an expected logger call expect(level, msg, params) { this.expectedCalls.push(new LoggerDriverMockCall_1.LoggerDriverMockCall(level, msg, params)); return this; } log(level, msg, params) { return __awaiter(this, void 0, void 0, function* () { if (this.check && this.callNum >= this.expectedCalls.length) { throw new Error(`LoggerDriverMock: call no. ${this.callNum + 1} not expected - ${level}('${msg}', ` + `${params.map((p) => JSON.stringify(p)).join(', ')})`); } const msgToLog = `[${new Date().toISOString().replace(/\..*/, '')}] ${msg}`; if (!this.silence) { console[level](msgToLog, ...params); } if (this.check) { const call = new LoggerDriverMockCall_1.LoggerDriverMockCall(level, msg, params); try { assert_1.default.deepStrictEqual(call, this.expectedCalls[this.callNum]); } catch (e) { throw new Error(`LoggerDriverMock: call no. ${this.callNum + 1} - expected and received call differs: ` + e.toString()); } finally { this.callNum++; } } }); } } exports.LoggerDriverMock = LoggerDriverMock;