105 lines
8.3 KiB
JavaScript
105 lines
8.3 KiB
JavaScript
'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 _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
|
|
|
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
|
|
|
var _inherits2 = require('babel-runtime/helpers/inherits');
|
|
|
|
var _inherits3 = _interopRequireDefault(_inherits2);
|
|
|
|
var _ = require('./');
|
|
|
|
var _2 = _interopRequireDefault(_);
|
|
|
|
var _status = require('../status');
|
|
|
|
var _status2 = _interopRequireDefault(_status);
|
|
|
|
var _helpers = require('./helpers');
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
var SnippetsFormatter = function (_Formatter) {
|
|
(0, _inherits3.default)(SnippetsFormatter, _Formatter);
|
|
|
|
function SnippetsFormatter(options) {
|
|
(0, _classCallCheck3.default)(this, SnippetsFormatter);
|
|
|
|
var _this = (0, _possibleConstructorReturn3.default)(this, (SnippetsFormatter.__proto__ || Object.getPrototypeOf(SnippetsFormatter)).call(this, options));
|
|
|
|
options.eventBroadcaster.on('test-step-finished', _this.logUndefinedTestStepSnippet.bind(_this));
|
|
return _this;
|
|
}
|
|
|
|
(0, _createClass3.default)(SnippetsFormatter, [{
|
|
key: 'logUndefinedTestStepSnippet',
|
|
value: function logUndefinedTestStepSnippet(_ref) {
|
|
var sourceLocation = _ref.testCase.sourceLocation,
|
|
index = _ref.index,
|
|
result = _ref.result;
|
|
|
|
if (result.status === _status2.default.UNDEFINED) {
|
|
var _eventDataCollector$g = this.eventDataCollector.getTestCaseData(sourceLocation),
|
|
gherkinDocument = _eventDataCollector$g.gherkinDocument,
|
|
testCase = _eventDataCollector$g.testCase;
|
|
|
|
var _eventDataCollector$g2 = this.eventDataCollector.getTestStepData({ testCase: testCase, index: index }),
|
|
pickleStep = _eventDataCollector$g2.pickleStep,
|
|
gherkinKeyword = _eventDataCollector$g2.gherkinKeyword;
|
|
|
|
var previousKeywordType = this.getPreviousKeywordType({
|
|
gherkinDocument: gherkinDocument,
|
|
testCase: testCase,
|
|
index: index
|
|
});
|
|
var keywordType = (0, _helpers.getStepKeywordType)({
|
|
keyword: gherkinKeyword,
|
|
language: gherkinDocument.feature.language,
|
|
previousKeywordType: previousKeywordType
|
|
});
|
|
var snippet = this.snippetBuilder.build({ keywordType: keywordType, pickleStep: pickleStep });
|
|
this.log(snippet + '\n\n');
|
|
}
|
|
}
|
|
}, {
|
|
key: 'getPreviousKeywordType',
|
|
value: function getPreviousKeywordType(_ref2) {
|
|
var gherkinDocument = _ref2.gherkinDocument,
|
|
testCase = _ref2.testCase,
|
|
index = _ref2.index;
|
|
|
|
var previousKeywordType = _helpers.KeywordType.PRECONDITION;
|
|
for (var i = 0; i < index; i += 1) {
|
|
var _eventDataCollector$g3 = this.eventDataCollector.getTestStepData({
|
|
testCase: testCase,
|
|
index: i
|
|
}),
|
|
gherkinKeyword = _eventDataCollector$g3.gherkinKeyword;
|
|
|
|
previousKeywordType = (0, _helpers.getStepKeywordType)({
|
|
keyword: gherkinKeyword,
|
|
language: gherkinDocument.feature.language,
|
|
previousKeywordType: previousKeywordType
|
|
});
|
|
}
|
|
return previousKeywordType;
|
|
}
|
|
}]);
|
|
return SnippetsFormatter;
|
|
}(_2.default);
|
|
|
|
exports.default = SnippetsFormatter;
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtYXR0ZXIvc25pcHBldHNfZm9ybWF0dGVyLmpzIl0sIm5hbWVzIjpbIlNuaXBwZXRzRm9ybWF0dGVyIiwib3B0aW9ucyIsImV2ZW50QnJvYWRjYXN0ZXIiLCJvbiIsImxvZ1VuZGVmaW5lZFRlc3RTdGVwU25pcHBldCIsInNvdXJjZUxvY2F0aW9uIiwidGVzdENhc2UiLCJpbmRleCIsInJlc3VsdCIsInN0YXR1cyIsIlVOREVGSU5FRCIsImV2ZW50RGF0YUNvbGxlY3RvciIsImdldFRlc3RDYXNlRGF0YSIsImdoZXJraW5Eb2N1bWVudCIsImdldFRlc3RTdGVwRGF0YSIsInBpY2tsZVN0ZXAiLCJnaGVya2luS2V5d29yZCIsInByZXZpb3VzS2V5d29yZFR5cGUiLCJnZXRQcmV2aW91c0tleXdvcmRUeXBlIiwia2V5d29yZFR5cGUiLCJrZXl3b3JkIiwibGFuZ3VhZ2UiLCJmZWF0dXJlIiwic25pcHBldCIsInNuaXBwZXRCdWlsZGVyIiwiYnVpbGQiLCJsb2ciLCJQUkVDT05ESVRJT04iLCJpIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0lBRXFCQSxpQjs7O0FBQ25CLDZCQUFZQyxPQUFaLEVBQXFCO0FBQUE7O0FBQUEsb0pBQ2JBLE9BRGE7O0FBRW5CQSxZQUFRQyxnQkFBUixDQUF5QkMsRUFBekIsQ0FDRSxvQkFERixFQUVJLE1BQUtDLDJCQUZUO0FBRm1CO0FBTXBCOzs7O3NEQUU0RTtBQUFBLFVBQW5DQyxjQUFtQyxRQUEvQ0MsUUFBK0MsQ0FBbkNELGNBQW1DO0FBQUEsVUFBakJFLEtBQWlCLFFBQWpCQSxLQUFpQjtBQUFBLFVBQVZDLE1BQVUsUUFBVkEsTUFBVTs7QUFDM0UsVUFBSUEsT0FBT0MsTUFBUCxLQUFrQixpQkFBT0MsU0FBN0IsRUFBd0M7QUFBQSxvQ0FJbEMsS0FBS0Msa0JBQUwsQ0FBd0JDLGVBQXhCLENBQXdDUCxjQUF4QyxDQUprQztBQUFBLFlBRXBDUSxlQUZvQyx5QkFFcENBLGVBRm9DO0FBQUEsWUFHcENQLFFBSG9DLHlCQUdwQ0EsUUFIb0M7O0FBQUEscUNBUWxDLEtBQUtLLGtCQUFMLENBQXdCRyxlQUF4QixDQUF3QyxFQUFFUixrQkFBRixFQUFZQyxZQUFaLEVBQXhDLENBUmtDO0FBQUEsWUFNcENRLFVBTm9DLDBCQU1wQ0EsVUFOb0M7QUFBQSxZQU9wQ0MsY0FQb0MsMEJBT3BDQSxjQVBvQzs7QUFTdEMsWUFBTUMsc0JBQXNCLEtBQUtDLHNCQUFMLENBQTRCO0FBQ3RETCwwQ0FEc0Q7QUFFdERQLDRCQUZzRDtBQUd0REM7QUFIc0QsU0FBNUIsQ0FBNUI7QUFLQSxZQUFNWSxjQUFjLGlDQUFtQjtBQUNyQ0MsbUJBQVNKLGNBRDRCO0FBRXJDSyxvQkFBVVIsZ0JBQWdCUyxPQUFoQixDQUF3QkQsUUFGRztBQUdyQ0o7QUFIcUMsU0FBbkIsQ0FBcEI7QUFLQSxZQUFNTSxVQUFVLEtBQUtDLGNBQUwsQ0FBb0JDLEtBQXBCLENBQTBCLEVBQUVOLHdCQUFGLEVBQWVKLHNCQUFmLEVBQTFCLENBQWhCO0FBQ0EsYUFBS1csR0FBTCxDQUFZSCxPQUFaO0FBQ0Q7QUFDRjs7O2tEQUU0RDtBQUFBLFVBQXBDVixlQUFvQyxTQUFwQ0EsZUFBb0M7QUFBQSxVQUFuQlAsUUFBbUIsU0FBbkJBLFFBQW1CO0FBQUEsVUFBVEMsS0FBUyxTQUFUQSxLQUFTOztBQUMzRCxVQUFJVSxzQkFBc0IscUJBQVlVLFlBQXRDO0FBQ0EsV0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlyQixLQUFwQixFQUEyQnFCLEtBQUssQ0FBaEMsRUFBbUM7QUFBQSxxQ0FDTixLQUFLakIsa0JBQUwsQ0FBd0JHLGVBQXhCLENBQXdDO0FBQ2pFUiw0QkFEaUU7QUFFakVDLGlCQUFPcUI7QUFGMEQsU0FBeEMsQ0FETTtBQUFBLFlBQ3pCWixjQUR5QiwwQkFDekJBLGNBRHlCOztBQUtqQ0MsOEJBQXNCLGlDQUFtQjtBQUN2Q0csbUJBQVNKLGNBRDhCO0FBRXZDSyxvQkFBVVIsZ0JBQWdCUyxPQUFoQixDQUF3QkQsUUFGSztBQUd2Q0o7QUFIdUMsU0FBbkIsQ0FBdEI7QUFLRDtBQUNELGFBQU9BLG1CQUFQO0FBQ0Q7Ozs7O2tCQWhEa0JqQixpQiIsImZpbGUiOiJzbmlwcGV0c19mb3JtYXR0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRm9ybWF0dGVyIGZyb20gJy4vJ1xuaW1wb3J0IFN0YXR1cyBmcm9tICcuLi9zdGF0dXMnXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSwgZ2V0U3RlcEtleXdvcmRUeXBlIH0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTbmlwcGV0c0Zvcm1hdHRlciBleHRlbmRzIEZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKVxuICAgIG9wdGlvbnMuZXZlbnRCcm9hZGNhc3Rlci5vbihcbiAgICAgICd0ZXN0LXN0ZXAtZmluaXNoZWQnLFxuICAgICAgOjp0aGlzLmxvZ1VuZGVmaW5lZFRlc3RTdGVwU25pcHBldFxuICAgIClcbiAgfVxuXG4gIGxvZ1VuZGVmaW5lZFRlc3RTdGVwU25pcHBldCh7IHRlc3RDYXNlOiB7IHNvdXJjZUxvY2F0aW9uIH0sIGluZGV4LCByZXN1bHQgfSkge1xuICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBTdGF0dXMuVU5ERUZJTkVEKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGdoZXJraW5Eb2N1bWVudCxcbiAgICAgICAgdGVzdENhc2UsXG4gICAgICB9ID0gdGhpcy5ldmVudERhdGFDb2xsZWN0b3IuZ2V0VGVzdENhc2VEYXRhKHNvdXJjZUxvY2F0aW9uKVxuICAgICAgY29uc3Qge1xuICAgICAgICBwaWNrbGVTdGVwLFxuICAgICAgICBnaGVya2luS2V5d29yZCxcbiAgICAgIH0gPSB0aGlzLmV2ZW50RGF0YUNvbGxlY3Rvci5nZXRUZXN0U3RlcERhdGEoeyB0ZXN0Q2FzZSwgaW5kZXggfSlcbiAgICAgIGNvbnN0IHByZXZpb3VzS2V5d29yZFR5cGUgPSB0aGlzLmdldFByZXZpb3VzS2V5d29yZFR5cGUoe1xuICAgICAgICBnaGVya2luRG9jdW1lbnQsXG4gICAgICAgIHRlc3RDYXNlLFxuICAgICAgICBpbmRleCxcbiAgICAgIH0pXG4gICAgICBjb25zdCBrZXl3b3JkVHlwZSA9IGdldFN0ZXBLZXl3b3JkVHlwZSh7XG4gICAgICAgIGtleXdvcmQ6IGdoZXJraW5LZXl3b3JkLFxuICAgICAgICBsYW5ndWFnZTogZ2hlcmtpbkRvY3VtZW50LmZlYXR1cmUubGFuZ3VhZ2UsXG4gICAgICAgIHByZXZpb3VzS2V5d29yZFR5cGUsXG4gICAgICB9KVxuICAgICAgY29uc3Qgc25pcHBldCA9IHRoaXMuc25pcHBldEJ1aWxkZXIuYnVpbGQoeyBrZXl3b3JkVHlwZSwgcGlja2xlU3RlcCB9KVxuICAgICAgdGhpcy5sb2coYCR7c25pcHBldH1cXG5cXG5gKVxuICAgIH1cbiAgfVxuXG4gIGdldFByZXZpb3VzS2V5d29yZFR5cGUoeyBnaGVya2luRG9jdW1lbnQsIHRlc3RDYXNlLCBpbmRleCB9KSB7XG4gICAgbGV0IHByZXZpb3VzS2V5d29yZFR5cGUgPSBLZXl3b3JkVHlwZS5QUkVDT05ESVRJT05cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluZGV4OyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IHsgZ2hlcmtpbktleXdvcmQgfSA9IHRoaXMuZXZlbnREYXRhQ29sbGVjdG9yLmdldFRlc3RTdGVwRGF0YSh7XG4gICAgICAgIHRlc3RDYXNlLFxuICAgICAgICBpbmRleDogaSxcbiAgICAgIH0pXG4gICAgICBwcmV2aW91c0tleXdvcmRUeXBlID0gZ2V0U3RlcEtleXdvcmRUeXBlKHtcbiAgICAgICAga2V5d29yZDogZ2hlcmtpbktleXdvcmQsXG4gICAgICAgIGxhbmd1YWdlOiBnaGVya2luRG9jdW1lbnQuZmVhdHVyZS5sYW5ndWFnZSxcbiAgICAgICAgcHJldmlvdXNLZXl3b3JkVHlwZSxcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBwcmV2aW91c0tleXdvcmRUeXBlXG4gIH1cbn1cbiJdfQ==
|