@cucumber/cucumber
Version:
The official JavaScript implementation of Cucumber.
37 lines • 1.53 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isFileNameInCucumber = isFileNameInCucumber;
exports.filterStackTrace = filterStackTrace;
const node_path_1 = __importDefault(require("node:path"));
const value_checker_1 = require("./value_checker");
const projectRootPath = node_path_1.default.join(__dirname, '..');
const projectChildDirs = ['src', 'lib', 'node_modules'];
function isFileNameInCucumber(fileName) {
return projectChildDirs.some((dir) => fileName.startsWith(node_path_1.default.join(projectRootPath, dir)));
}
function filterStackTrace(frames) {
if (isErrorInCucumber(frames)) {
return frames;
}
const index = frames.findIndex((x) => isFrameInCucumber(x));
if (index === -1) {
return frames;
}
return frames.slice(0, index);
}
function isErrorInCucumber(frames) {
const filteredFrames = frames.filter((x) => !isFrameInNode(x));
return filteredFrames.length > 0 && isFrameInCucumber(filteredFrames[0]);
}
function isFrameInCucumber(frame) {
const fileName = (0, value_checker_1.valueOrDefault)(frame.getFileName(), '');
return isFileNameInCucumber(fileName);
}
function isFrameInNode(frame) {
const fileName = (0, value_checker_1.valueOrDefault)(frame.getFileName(), '');
return !fileName.includes(node_path_1.default.sep);
}
//# sourceMappingURL=filter_stack_trace.js.map
;