Files
dial-reference/server/tests/js_tests/libs/utils.js
Shruti Ranganathan Jothi 1f5c5454f2 adding logging for js tests
2017-03-08 19:30:02 -08:00

89 lines
2.6 KiB
JavaScript

"use strict";
const colors = require("colors/safe");
const sprintf = require("sprintf-js").sprintf;
const winston = require("winston");
const moment = require("moment");
const keypress = require("keypress");
const levels = { error: 0, warn: 1, info: 2, verbose: 3, debug: 4 };
const transports = [
new (winston.transports.Console)({
level: "info",
formatter: consoleFormatter
}),
new (winston.transports.File)({
level: "debug",
name: "log_file",
filename: "js_tests_log.txt",
json: false,
formatter: fileFormatter,
options: { flags: "w" }
}),
];
winston.configure({ levels: levels, transports: transports });
function consoleFormatter(options) {
let str = options.message;
switch (options.level) {
case "error": return colors.red(str);
case "warn": return colors.yellow(str);
case "debug": return colors.blue(str);
case "info":
default: return str;
}
}
function fileFormatter(options) {
let str = options.message;
return str;
}
function ask(description) {
return new Q.Promise(function (resolve, reject) {
// make `process.stdin` begin emitting "keypress" events
keypress(process.stdin);
process.stdin.setRawMode(true);
process.stdin.resume();
console.log(description);
// listen for the "keypress" event
process.stdin.on("keypress", function (ch, key) {
if (key && key.name === "return") {
process.stdin.pause();
return resolve();
}
if (key && key.name === "backspace") {
process.stdin.pause();
return reject("User marked the step as FAILED");
}
});
});
}
function printTestInfo(testFile, description) {
winston.info(sprintf("[%-s] %-20s : %-s", moment().format("YYYY-MM-DDTHH:mm:ssZ"), "TEST", testFile));
winston.info(sprintf("[%-s] %-20s : %-s", moment().format("YYYY-MM-DDTHH:mm:ssZ"), "DESCRIPTION", description));
}
function printTestSuccess() {
winston.info(sprintf("[%-s] %-20s : %-s", moment().format("YYYY-MM-DDTHH:mm:ssZ"), "RESULT", "TEST PASSED\n"));
}
function printTestFailure(err) {
winston.error(sprintf("[%-s] %-20s : %-s", moment().format("YYYY-MM-DDTHH:mm:ssZ"), "RESULT", "TEST FAILED " + err + "\n"));
}
function printDebug(msg) {
winston.debug(sprintf("[%-s] %-20s : %-s", moment().format("YYYY-MM-DDTHH:mm:ssZ"), "DEBUG", msg));
}
module.exports.printTestInfo = printTestInfo;
module.exports.printTestSuccess = printTestSuccess;
module.exports.printTestFailure = printTestFailure;
module.exports.printDebug = printDebug;