Sha256: 69e9aeb15978707150a1b165a61c2e38e4b51aacc74c0f47aa7e1f549e98ce20
Contents?: true
Size: 1.65 KB
Versions: 2
Compression:
Stored size: 1.65 KB
Contents
require 'chutney/linter' module Chutney # service class to lint for using same tag on all scenarios class SameTagForAllScenarios < Linter def lint lint_scenarios if feature&.include?(:children) lint_examples if feature&.include?(:children) end def lint_scenarios tags = scenario_tags return if tags.nil? || tags.empty? return unless feature[:children].length > 1 tags.each do |tag| next if tag == 'skip' add_issue( I18n.t('linters.same_tag_for_all_scenarios.feature_level', tag: tag), feature ) end end def lint_examples feature[:children].each do |scenario| tags = example_tags(scenario) next if tags.nil? || tags.empty? next unless scenario[:examples].length > 1 tags.each do |tag| next if tag == 'skip' add_issue(I18n.t('linters.same_tag_for_all_scenarios.example_level', tag: tag), feature, scenario) end end end def scenario_tags result = nil scenarios do |_feature, scenario| next if scenario[:type] == :Background tags = tags_for(scenario) result ||= tags result &= tags end result end def example_tags(scenario) result = nil return result unless scenario.include? :examples scenario[:examples].each do |example| return nil unless example.include? :tags tags = tags_for(example) result = tags if result.nil? result &= tags end result end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
chutney-2.2.1 | lib/chutney/linter/same_tag_for_all_scenarios.rb |
chutney-2.1.1 | lib/chutney/linter/same_tag_for_all_scenarios.rb |