cucumber
Version:
The official JavaScript implementation of Cucumber.
33 lines (22 loc) • 1.68 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);var _lodash = require('lodash');var _lodash2 = _interopRequireDefault(_lodash);
var _keyword_type = require('../keyword_type');
var _step_arguments = require('./step_arguments');var _step_arguments2 = _interopRequireDefault(_step_arguments);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var
Step =
function Step(options) {(0, _classCallCheck3.default)(this, Step);var
backgroundLines =
options.backgroundLines;var gherkinData = options.gherkinData;var language = options.language;var lineToKeywordMapping = options.lineToKeywordMapping;var previousStep = options.previousStep;var scenario = options.scenario;
this.arguments = _lodash2.default.map(gherkinData.arguments, _step_arguments2.default.build);
this.line = _lodash2.default.last(_lodash2.default.map(gherkinData.locations, 'line'));
this.name = gherkinData.text;
this.scenario = scenario;
this.uri = gherkinData.locations[0].path;
this.isBackground = _lodash2.default.some(gherkinData.locations, function (_ref) {var line = _ref.line;
return _lodash2.default.includes(backgroundLines, line);
});
this.keyword = _lodash2.default.chain(gherkinData.locations).
map(function (_ref2) {var line = _ref2.line;return lineToKeywordMapping[line];}).
compact().
first().
value();
this.keywordType = (0, _keyword_type.getStepKeywordType)({ language: language, previousStep: previousStep, step: this });
};exports.default = Step;