Module: RuboCop::Cop::Vicenzo::RSpec::PremiseTracking
- Extended by:
- AST::NodePattern::Macros
- Includes:
- RSpec::Language
- Included in:
- DerivedPremises, MutatedPremises
- Defined in:
- lib/rubocop/cop/vicenzo/rspec/mixin/premise_tracking.rb
Overview
Shared helpers to walk example groups keeping track of the premises
(let, let!, let_it_be, subject) visible at each level, and to
resolve which premise a call chain starts from.
Constant Summary collapse
- SETUP_HOOKS =
Hooks that build the state an example starts from.
afteris left out on purpose: mutating there is teardown, not a premise. %i[before around prepend_before append_before].freeze
Instance Method Summary collapse
- #premise_name(node) ⇒ Object
-
#root_receiver_name(node) ⇒ Object
Name of the local call a chain starts from, e.g.
Instance Method Details
#premise_name(node) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/rubocop/cop/vicenzo/rspec/mixin/premise_tracking.rb', line 22 def_node_matcher :premise_name, <<~PATTERN (any_block (send nil? { {#Helpers.all :let_it_be :let_it_be!} ({str sym} $_) | #Subjects.all (sym $_) | $#Subjects.all } ... ) ... ) PATTERN |
#root_receiver_name(node) ⇒ Object
Name of the local call a chain starts from, e.g. :order
for order.shipment.update!.
39 40 41 |
# File 'lib/rubocop/cop/vicenzo/rspec/mixin/premise_tracking.rb', line 39 def_node_matcher :root_receiver_name, <<~PATTERN (send nil? $_) PATTERN |