cypress-terminal-report
Version:
Better terminal and file output for cypress test logs.
44 lines (43 loc) • 2.14 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = __importDefault(require("../constants"));
const utils_1 = __importDefault(require("../utils"));
const LogCollectBase_1 = __importDefault(require("./LogCollectBase"));
class LogCollectCypressCommand extends LogCollectBase_1.default {
constructor() {
super(...arguments);
this.ignoredCommands = ['xhr', 'log', 'request'];
}
register() {
const isOfInterest = (options) => options.instrument === 'command' &&
options.consoleProps &&
!this.ignoredCommands.includes(options.name) &&
!(options.name === 'task' && options.message.match(/ctrLogMessages/));
const formatLogMessage = (options) => {
let message = options.name + '\t' + options.message;
if (options.expected && options.actual) {
message += '\nActual: \t' + utils_1.default.jsonStringify(options.actual, false);
message += '\nExpected: \t' + utils_1.default.jsonStringify(options.expected, false);
}
return message;
};
Cypress.on('log:added', (options) => {
if (isOfInterest(options)) {
const log = formatLogMessage(options);
const severity = options.state === 'failed' ? constants_1.default.SEVERITY.ERROR : constants_1.default.SEVERITY.SUCCESS;
this.collectorState.addLog([constants_1.default.LOG_TYPES.CYPRESS_COMMAND, log, severity], options.id);
}
});
Cypress.on('log:changed', (options) => {
if (isOfInterest(options)) {
const log = formatLogMessage(options);
const severity = options.state === 'failed' ? constants_1.default.SEVERITY.ERROR : constants_1.default.SEVERITY.SUCCESS;
this.collectorState.updateLog(log, severity, options.id);
}
});
}
}
exports.default = LogCollectCypressCommand;