cucumber-generator
Version:
Generate step definitions for cucumber scenarios
45 lines (44 loc) • 1.87 kB
JavaScript
;
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TemplateGenerator = void 0;
const Generator_1 = require("./Generator");
const Parser_1 = require("../files/Parser");
const TemplateFeatureProcessor_1 = require("./TemplateFeatureProcessor");
class TemplateGenerator extends Generator_1.Generator {
constructor(template, options) {
const { variables, templateDirectory } = options, base = __rest(options, ["variables", "templateDirectory"]);
super(base);
this.variables = variables;
this.template = template;
this.templateDirectory = templateDirectory;
}
async generate() {
const result = {};
const featureFiles = await this.scanner.scanForFeatures();
for (let f of featureFiles.relative) {
const doc = await this.parser.parse(f);
const features = Parser_1.Parser.toFeatures(doc);
for (let feature of features) {
result[f] = await TemplateFeatureProcessor_1.TemplateFeatureProcessor.processFeature(feature, {
variables: this.variables,
featureFile: f,
templateDirectory: this.templateDirectory,
template: this.template,
});
}
}
return result;
}
}
exports.TemplateGenerator = TemplateGenerator;