Class: RuboCop::Cop::RSpec::VerifiedDoubleReference
- Extended by:
- AutoCorrector
- Includes:
- ConfigurableEnforcedStyle
- Defined in:
- lib/rubocop/cop/rspec/verified_double_reference.rb
Overview
Checks for consistent verified double reference style.
Only investigates references that are one of the supported styles.
This cop can be configured in your configuration using the EnforcedStyle option and supports --auto-gen-config.
Constant Summary collapse
- MSG =
'Use a %<style>s class reference for verified doubles.'- RESTRICT_ON_SEND =
Set[ :class_double, :class_spy, :instance_double, :instance_spy, :mock_model, :object_double, :object_spy, :stub_model ].freeze
- REFERENCE_TYPE_STYLES =
{ str: :string, const: :constant }.freeze
Instance Method Summary collapse
Methods inherited from Base
inherited, #on_new_investigation
Methods included from RSpec::Language
#example?, #example_group?, #example_group_with_body?, #explicit_rspec?, #hook?, #include?, #let?, #rspec?, #shared_group?, #spec_group?, #subject?
Instance Method Details
#on_send(node) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/rubocop/cop/rspec/verified_double_reference.rb', line 74 def on_send(node) verified_double(node) do |class_reference| break correct_style_detected unless opposing_style?(class_reference) = format(MSG, style: style) expression = class_reference.source_range add_offense(expression, message: ) do |corrector| offense = class_reference.source corrector.replace(expression, correct_style(offense)) opposite_style_detected end end end |
#verified_double(node) ⇒ Object
66 67 68 69 70 71 72 |
# File 'lib/rubocop/cop/rspec/verified_double_reference.rb', line 66 def_node_matcher :verified_double, <<~PATTERN (send nil? RESTRICT_ON_SEND $_class_reference ...) PATTERN |