lib/rubocop/cop/rspec/rails/travel_around.rb in rubocop-rspec-2.27.1 vs lib/rubocop/cop/rspec/rails/travel_around.rb in rubocop-rspec-2.28.0

- old
+ new

@@ -2,91 +2,33 @@ module RuboCop module Cop module RSpec module Rails - # Prefer to travel in `before` rather than `around`. - # - # @safety - # This cop is unsafe because the automatic `travel_back` is only run - # on test cases that are considered as Rails related. - # - # And also, this cop's autocorrection is unsafe because the order of - # execution will change if other steps exist before traveling in - # `around`. - # - # @example - # # bad - # around do |example| - # freeze_time do - # example.run - # end - # end - # - # # good - # before { freeze_time } - class TravelAround < Base - extend AutoCorrector - - MSG = 'Prefer to travel in `before` rather than `around`.' - - TRAVEL_METHOD_NAMES = %i[ - freeze_time - travel - travel_to - ].to_set.freeze - - # @!method extract_run_in_travel(node) - def_node_matcher :extract_run_in_travel, <<~PATTERN - (block - $(send nil? TRAVEL_METHOD_NAMES ...) - (args ...) - (send _ :run) - ) - PATTERN - - # @!method match_around_each?(node) - def_node_matcher :match_around_each?, <<~PATTERN - (block - (send _ :around (sym :each)?) - ... - ) - PATTERN - - def on_block(node) - run_node = extract_run_in_travel(node) - return unless run_node - - around_node = extract_surrounding_around_block(run_node) - return unless around_node - - add_offense(node) do |corrector| - autocorrect(corrector, node, run_node, around_node) - end - end - alias on_numblock on_block - - private - - def autocorrect(corrector, node, run_node, around_node) - corrector.replace( - node, - node.body.source - ) - corrector.insert_before( - around_node, - "before { #{run_node.source} }\n\n" - ) - end - - # @param node [RuboCop::AST::BlockNode] - # @return [RuboCop::AST::BlockNode, nil] - def extract_surrounding_around_block(node) - node.each_ancestor(:block).find do |ancestor| - match_around_each?(ancestor) - end - end - end + # @!parse + # # Prefer to travel in `before` rather than `around`. + # # + # # @safety + # # This cop is unsafe because the automatic `travel_back` is only + # # run on test cases that are considered as Rails related. + # # + # # And also, this cop's autocorrection is unsafe because the order + # # of execution will change if other steps exist before traveling + # # in `around`. + # # + # # @example + # # # bad + # # around do |example| + # # freeze_time do + # # example.run + # # end + # # end + # # + # # # good + # # before { freeze_time } + # # + # class TravelAround < RuboCop::Cop::RSpecRails::Base; end + TravelAround = ::RuboCop::Cop::RSpecRails::TravelAround end end end end