Sha256: 20e57705cf6b06e7e5aec0152c8bf8125d17015fcac08736f2e9b0942b95492b

Contents?: true

Size: 754 Bytes

Versions: 9

Compression:

Stored size: 754 Bytes

Contents

module Chutney
  # service class to lint for unique scenario names
  class UniqueScenarioNames < Linter
    def lint
      references_by_name = {}
      scenarios do |feature, scenario|
        next unless scenario.key? :name

        name = scenario[:name]
        if references_by_name[name]
          issue(name, references_by_name[name], scenario)
        else
          references_by_name[name] = location(feature, scenario, nil)
        end
      end
    end
    
    def issue(name, first_location, scenario)
      add_issue(
        I18n.t('linters.unique_scenario_names',
               name: name,
               line: first_location[:line],
               column: first_location[:column]), 
        feature, scenario
      )
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
chutney-2.2.1 lib/chutney/linter/unique_scenario_names.rb
chutney-2.1.1 lib/chutney/linter/unique_scenario_names.rb
chutney-2.1.0 lib/chutney/linter/unique_scenario_names.rb
chutney-2.0.3.1 lib/chutney/linter/unique_scenario_names.rb
chutney-2.0.3 lib/chutney/linter/unique_scenario_names.rb
chutney-2.0.2 lib/chutney/linter/unique_scenario_names.rb
chutney-2.0.1 lib/chutney/linter/unique_scenario_names.rb
chutney-2.0.0 lib/chutney/linter/unique_scenario_names.rb
chutney-2.0.0.rc1 lib/chutney/linter/unique_scenario_names.rb