testcafe-reporter-cucumber-json
Version:
Cucumber JSON TestCafe reporter plugin.
76 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stackFramesOf = exports.getAllFilesIn = exports.isNodeModuleOrIsNullOrUndefined = exports.getFileNameFrom = exports.getCurrentAppStackFramesFrom = exports.filterStackFramesIn = void 0;
exports.filterStackFramesIn = function (callsite) {
if (callsite) {
ensureCallsiteAndStackFramesAreValid(callsite);
var filteredStackFrames = exports.getCurrentAppStackFramesFrom(callsite);
callsite.stackFrames = filteredStackFrames;
callsite.callsiteFrameIdx = 0;
}
};
function ensureCallsiteAndStackFramesAreValid(callsite) {
if (!Array.isArray(callsite.stackFrames)) {
console.warn("testcafe-reporter-cucumber-json: cannot render errors because the callsite object has unexpected content");
console.warn("testcafe-reporter-cucumber-json: please provide the following log to github.com/hdorgeval/testcafe-reporter-cucumber-json :");
console.warn("testcafe-reporter-cucumber-json :", {
callsite: callsite,
stackFrames: callsite.stackFrames,
});
}
}
exports.getCurrentAppStackFramesFrom = function (callsite) {
var result = [];
if (callsite && Array.isArray(callsite.stackFrames)) {
callsite.stackFrames.map(function (stackFrame) {
var filename = exports.getFileNameFrom(stackFrame);
if (exports.isNodeModuleOrIsNullOrUndefined(filename)) {
return;
}
result.push(stackFrame);
});
}
return result;
};
exports.getFileNameFrom = function (stackFrame) {
if (stackFrame &&
stackFrame.getFileName &&
typeof stackFrame.getFileName === 'function') {
return stackFrame.getFileName();
}
return undefined;
};
exports.isNodeModuleOrIsNullOrUndefined = function (filePath) {
if (filePath === undefined || filePath === null) {
return true;
}
if (filePath.includes('node_modules')) {
return true;
}
return false;
};
exports.getAllFilesIn = function (callsite) {
var currentFile = 'undefined';
var result = callsite.stackFrames
.map(function (stackFrame) { return stackFrame.getFileName(); })
.filter(function (filepath) {
if (filepath === undefined || filepath === null) {
return false;
}
if (filepath === currentFile) {
return false;
}
currentFile = filepath;
return true;
});
return result;
};
exports.stackFramesOf = function (filename) {
return {
in: function (stackFrames) {
var result = stackFrames.filter(function (stackFrame) { return filename === exports.getFileNameFrom(stackFrame); });
return result;
},
};
};
//# sourceMappingURL=stack-frames-parser.js.map