class RuboCop::Cop::RSpec::Capybara::FeatureMethods


end
end
# …
it ‘with OAuth’ do
end
visit new_session_path
before do
let(:user) { User.new }
describe ‘User logs in’ do
# good
end
end
# …
scenario ‘with OAuth’ do
end
visit new_session_path
background do
given(:user) { User.new }
feature ‘User logs in’ do
# bad
@example
be enabled by using the EnabledMethods configuration option.
(alias for ‘before`), etc. You can configure which of the methods to
the rest of the methods, like `given` (alias for `let`), `background`
to make it obvious that the test uses Capybara, while still disable
however may prefer using some of the Capybara methods (like `feature`)
the same native RSpec method (e.g. are just aliases). Some teams
By default, the cop disables all Capybara-specific methods that have
Checks for consistent method usage in feature specs.

def enabled?(method_name)

def enabled?(method_name)
  enabled_methods.include?(method_name)
end

def enabled_methods

def enabled_methods
  cop_config
    .fetch('EnabledMethods', [])
    .map(&:to_sym)
end

def message(range)

def message(range)
  name = range.source.to_sym
  format(MSG, method: name, replacement: MAP[name])
end

def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler

rubocop:disable InternalAffairs/NumblockHandler
def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler
  return unless inside_example_group?(node)
  feature_method(node) do |send_node, match|
    next if enabled?(match)
    add_offense(send_node.loc.selector) do |corrector|
      corrector.replace(send_node.loc.selector, MAP[match].to_s)
    end
  end
end