cucumber
Version:
The official JavaScript implementation of Cucumber.
31 lines (20 loc) • 1.12 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });exports.
getStepKeywordType = getStepKeywordType;var _lodash = require('lodash');var _lodash2 = _interopRequireDefault(_lodash);var _gherkin = require('gherkin');var _gherkin2 = _interopRequireDefault(_gherkin);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var types = { EVENT: 'event', OUTCOME: 'outcome', PRECONDITION: 'precondition' };exports.default = types;function getStepKeywordType(_ref) {var language = _ref.language;var previousStep = _ref.previousStep;var step = _ref.step;
var dialect = _gherkin2.default.DIALECTS[language];
var type = _lodash2.default.find(['given', 'when', 'then', 'and', 'but'], function (type) {
return _lodash2.default.includes(dialect[type], step.keyword);
});
switch (type) {
case 'when':
return types.EVENT;
case 'then':
return types.OUTCOME;
case 'and':
case 'but':
if (previousStep) {
return previousStep.keywordType;
}
// fallthrough
default:
return types.PRECONDITION;}
}