flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
48 lines • 2.15 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.afterScenarioReady = exports.afterScenarioFinished = exports.beforeScenarioFinished = exports.afterScenarioRequestStarted = exports.beforeScenarioRequestStarted = exports.afterScenarioExecuted = exports.beforeScenarioExecuted = void 0;
const assertion_result_1 = require("../logging/assertion-result");
function cast(val) {
return val;
}
const scenarioGuard = (propertyKey, descriptor, callback, verb) => {
const method = descriptor.value;
descriptor.value = function (...args) {
const scenario = cast(this);
if (callback(scenario)) {
scenario.result(new assertion_result_1.AssertionFail(`Can not ${propertyKey} because scenario ${verb}.`, null));
}
else {
return method.apply(scenario, args);
}
};
};
function beforeScenarioExecuted(t, p, d) {
scenarioGuard(p, d, (s) => s.hasExecuted, "started executing");
}
exports.beforeScenarioExecuted = beforeScenarioExecuted;
function afterScenarioExecuted(t, p, d) {
scenarioGuard(p, d, (s) => !s.hasExecuted, "has not started executing");
}
exports.afterScenarioExecuted = afterScenarioExecuted;
function beforeScenarioRequestStarted(t, p, d) {
scenarioGuard(p, d, (s) => s.hasRequestStarted, "request started executing");
}
exports.beforeScenarioRequestStarted = beforeScenarioRequestStarted;
function afterScenarioRequestStarted(t, p, d) {
scenarioGuard(p, d, (s) => !s.hasRequestStarted, "request has not started executing");
}
exports.afterScenarioRequestStarted = afterScenarioRequestStarted;
function beforeScenarioFinished(t, p, d) {
scenarioGuard(p, d, (s) => s.hasFinished, "already finished");
}
exports.beforeScenarioFinished = beforeScenarioFinished;
function afterScenarioFinished(t, p, d) {
scenarioGuard(p, d, (s) => !s.hasFinished, "has not finished");
}
exports.afterScenarioFinished = afterScenarioFinished;
function afterScenarioReady(t, p, d) {
scenarioGuard(p, d, (s) => !s.isReadyToExecute, "is not ready.");
}
exports.afterScenarioReady = afterScenarioReady;
//# sourceMappingURL=internal.js.map
;