lib/lopata/scenario_builder.rb in lopata-0.1.25 vs lib/lopata/scenario_builder.rb in lopata-0.1.26

- old
+ new

@@ -36,19 +36,23 @@ # @private def build filters = Lopata.configuration.filters option_combinations.each do |option_set| metadata = common_metadata.merge(option_set.metadata) - scenario = Lopata::Scenario::Execution.new(title, option_set.title, metadata) - + scenario_title = [title, option_set.title].compact.reject(&:empty?).join(' ') + scenario = Lopata::Scenario::Execution.new(scenario_title, metadata) + unless filters.empty? next unless filters.all? { |f| f[scenario] } end + exec_steps = [] steps_with_hooks.each do |step| next if step.condition && !step.condition.match?(scenario) - step.execution_steps(scenario).each { |s| scenario.steps << s } + step.execution_steps(scenario, parent: scenario.top).each { |s| exec_steps << s } end + scenario.steps.push(*exec_steps.reject(&:teardown?)) + scenario.steps.push(*exec_steps.select(&:teardown?)) world.scenarios << scenario end end