class CukeLinter::TestWithNoActionStepLinter

A linter that detects scenarios and outlines that do not have an action (i.e. 'When') step

Public Instance Methods

configure(options) click to toggle source

Changes the linting settings on the linter using the provided configuration

# File lib/cuke_linter/linters/test_with_no_action_step_linter.rb, line 8
def configure(options)
  @when_keywords = options['When']
end
message() click to toggle source

The message used to describe the problem that has been found

# File lib/cuke_linter/linters/test_with_no_action_step_linter.rb, line 23
def message
  "Test does not have a 'When' step."
end
rule(model) click to toggle source

The rule used to determine if a model has a problem

# File lib/cuke_linter/linters/test_with_no_action_step_linter.rb, line 13
def rule(model)
  return false unless model.is_a?(CukeModeler::Scenario) || model.is_a?(CukeModeler::Outline)

  model_steps      = model.steps || []
  background_steps = model.parent_model.has_background? ? model.parent_model.background.steps || [] : []
  all_steps        = model_steps + background_steps
  all_steps.none? { |step| when_keywords.include?(step.keyword) }
end

Private Instance Methods

when_keywords() click to toggle source
# File lib/cuke_linter/linters/test_with_no_action_step_linter.rb, line 29
def when_keywords
  @when_keywords || [DEFAULT_WHEN_KEYWORD]
end