gauge-ts
Version:
Typescript runner for Gauge
98 lines (97 loc) • 4.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomScreenshotWriter = exports.AfterStep = exports.BeforeStep = exports.AfterScenario = exports.BeforeScenario = exports.AfterSpec = exports.BeforeSpec = exports.AfterSuite = exports.BeforeSuite = exports.ContinueOnFailure = exports.Step = void 0;
const HookMethod_1 = require("../models/HookMethod");
const HookRegistry_1 = require("../models/HookRegistry");
const HookType_1 = require("../models/HookType");
const StepRegistry_1 = require("../models/StepRegistry");
const StepRegistryEntry_1 = require("../models/StepRegistryEntry");
const Screenshot_1 = require("../screenshot/Screenshot");
/**
*
* @param stepTexts form accept only string parameters.
* As far as you want to use e.g. number you will need to convert it first
*
* @constructor
*/
function Step(stepTexts) {
return (target, _propertyKey, descriptor) => {
let _stepTexts = stepTexts;
if (!Array.isArray(_stepTexts)) {
_stepTexts = [_stepTexts];
}
for (const s of _stepTexts) {
const stepValue = s.replace(/(<.*?>)/g, "{}");
StepRegistry_1.default.add(stepValue, new StepRegistryEntry_1.StepRegistryEntry(s, stepValue, process.env.STEP_FILE_PATH, descriptor.value, undefined, _stepTexts.length > 1));
}
};
}
exports.Step = Step;
function ContinueOnFailure(exceptions) {
return (target, _propertyKey, descriptor) => {
StepRegistry_1.default.addContinueOnFailure(descriptor.value, exceptions);
};
}
exports.ContinueOnFailure = ContinueOnFailure;
function BeforeSuite() {
return (_target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.BeforeSuite, new HookMethod_1.HookMethod(descriptor.value, file));
};
}
exports.BeforeSuite = BeforeSuite;
function AfterSuite() {
return (target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.AfterSuite, new HookMethod_1.HookMethod(descriptor.value, file));
};
}
exports.AfterSuite = AfterSuite;
function BeforeSpec(options) {
return (target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.BeforeSpec, new HookMethod_1.HookMethod(descriptor.value, file, options));
};
}
exports.BeforeSpec = BeforeSpec;
function AfterSpec(options) {
return (target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.AfterSpec, new HookMethod_1.HookMethod(descriptor.value, file, options));
};
}
exports.AfterSpec = AfterSpec;
function BeforeScenario(options) {
return (target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.BeforeScenario, new HookMethod_1.HookMethod(descriptor.value, file, options));
};
}
exports.BeforeScenario = BeforeScenario;
function AfterScenario(options) {
return (target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.AfterScenario, new HookMethod_1.HookMethod(descriptor.value, file, options));
};
}
exports.AfterScenario = AfterScenario;
function BeforeStep(options) {
return (target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.BeforeStep, new HookMethod_1.HookMethod(descriptor.value, file, options));
};
}
exports.BeforeStep = BeforeStep;
function AfterStep(options) {
return (target, _propertyKey, descriptor) => {
const file = process.env.STEP_FILE_PATH;
HookRegistry_1.default.addHook(HookType_1.HookType.AfterStep, new HookMethod_1.HookMethod(descriptor.value, file, options));
};
}
exports.AfterStep = AfterStep;
function CustomScreenshotWriter() {
return (target, _propertyKey, descriptor) => {
Screenshot_1.Screenshot.setCustomScreenshotWriter(descriptor.value);
};
}
exports.CustomScreenshotWriter = CustomScreenshotWriter;