UNPKG

cucumber

Version:

The official JavaScript implementation of Cucumber.

31 lines (27 loc) 1.8 kB
'use strict';Object.defineProperty(exports, "__esModule", { value: true });var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);var _createClass2 = require('babel-runtime/helpers/createClass');var _createClass3 = _interopRequireDefault(_createClass2);var _lodash = require('lodash');var _lodash2 = _interopRequireDefault(_lodash); var _stackChain = require('stack-chain');var _stackChain2 = _interopRequireDefault(_stackChain); var _path = require('path');var _path2 = _interopRequireDefault(_path);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var StackTraceFilter = function () { function StackTraceFilter() {(0, _classCallCheck3.default)(this, StackTraceFilter); this.cucumberPath = _path2.default.join(__dirname, '..', '..'); }(0, _createClass3.default)(StackTraceFilter, [{ key: 'filter', value: function filter() {var _this = this; this.currentFilter = _stackChain2.default.filter.attach(function (error, frames) { if (frames.length > 0 && _this.isFrameInCucumber(frames[0])) { return frames; } var index = _lodash2.default.findIndex(frames, _this.isFrameInCucumber.bind(_this)); if (index === -1) { return frames; } else { return frames.slice(0, index); } }); } }, { key: 'isFrameInCucumber', value: function isFrameInCucumber( frame) { var fileName = frame.getFileName() || ''; return _lodash2.default.startsWith(fileName, this.cucumberPath); } }, { key: 'unfilter', value: function unfilter() { _stackChain2.default.filter.deattach(this.currentFilter); } }]);return StackTraceFilter;}();exports.default = StackTraceFilter;