jest-cucumber
Version:
Execute Gherkin scenarios in Jest
49 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FeatureFileEventGenerator = void 0;
var fs_1 = require("fs");
var uuid_1 = require("uuid");
var generateMessages_1 = require("gherkin/dist/src/stream/generateMessages");
var FeatureFileEventGenerator = /** @class */ (function () {
function FeatureFileEventGenerator(eventBroadcaster) {
this.eventBroadcaster = eventBroadcaster;
this.processedFeatureFiles = {};
}
FeatureFileEventGenerator.prototype.generateEventsFromFeatureFile = function (featureFilePath) {
var _this = this;
return new Promise(function (resolve, reject) {
if (_this.processedFeatureFiles[featureFilePath]) {
return resolve(_this.processedFeatureFiles[featureFilePath]);
}
else {
fs_1.readFile(featureFilePath, 'utf8', function (error, data) {
if (error) {
reject(error);
}
else {
_this.processedFeatureFiles[featureFilePath] = data;
resolve(data);
}
});
}
})
.then(function (featureText) {
var envelopes = generateMessages_1.default(featureText, featureFilePath, {
newId: uuid_1.v4,
includePickles: true
});
envelopes.forEach(function (envelope) {
if (envelope.message === 'pickle') {
_this.eventBroadcaster.emit('pickle-accepted', {
type: 'pickle-accepted',
pickle: envelope.pickle,
uri: envelope.source,
});
}
});
});
};
return FeatureFileEventGenerator;
}());
exports.FeatureFileEventGenerator = FeatureFileEventGenerator;
//# sourceMappingURL=FeatureFileEventGenerator.js.map