UNPKG

cucumber

Version:

The official JavaScript implementation of Cucumber.

34 lines (28 loc) 1 kB
var _ = require('underscore'); var Hook = function(code, options) { var Cucumber = require('../../cucumber'); var tags = options['tags'] || []; var self = { invokeBesideScenario: function invokeBesideScenario(scenario, world, callback) { if (self.appliesToScenario(scenario)) code.call(world, callback); else callback(function(endPostScenarioAroundHook) { endPostScenarioAroundHook(); }); }, appliesToScenario: function appliesToScenario(scenario) { var astFilter = self.getAstFilter(); return astFilter.isScenarioEnrolled(scenario); }, getAstFilter: function getAstFilter() { var tagGroups = Cucumber.TagGroupParser.getTagGroupsFromStrings(tags); var rules = _.map(tagGroups, function(tagGroup) { var rule = Cucumber.Ast.Filter.AnyOfTagsRule(tagGroup); return rule; }); var astFilter = Cucumber.Ast.Filter(rules); return astFilter; } }; return self; }; module.exports = Hook;