From b56f67d6f0cb16f47aca4ecb6e6c325a6d58c1ea Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Fri, 9 Sep 2022 23:58:25 +0900 Subject: [PATCH] [Fix #762] Fix an error for `Rails/FreezeTime` Fixes #762. This PR fixes an error for `Rails/FreezeTime` when using `travel_to` with an argument of `current` method without receiver. --- changelog/fix_an_error_for_rails_freeze_time.md | 1 + lib/rubocop/cop/rails/freeze_time.rb | 1 + spec/rubocop/cop/rails/freeze_time_spec.rb | 6 ++++++ 3 files changed, 8 insertions(+) create mode 100644 changelog/fix_an_error_for_rails_freeze_time.md diff --git a/changelog/fix_an_error_for_rails_freeze_time.md b/changelog/fix_an_error_for_rails_freeze_time.md new file mode 100644 index 0000000000..9ec475c8fa --- /dev/null +++ b/changelog/fix_an_error_for_rails_freeze_time.md @@ -0,0 +1 @@ +* [#762](https://github.com/rubocop/rubocop-rails/issues/762): Fix an error for `Rails/FreezeTime` when using `travel_to` with an argument of `current` method without receiver. ([@koic][]) diff --git a/lib/rubocop/cop/rails/freeze_time.rb b/lib/rubocop/cop/rails/freeze_time.rb index 21d2748544..6a07afba78 100644 --- a/lib/rubocop/cop/rails/freeze_time.rb +++ b/lib/rubocop/cop/rails/freeze_time.rb @@ -44,6 +44,7 @@ class FreezeTime < Base def on_send(node) child_node, method_name = *node.first_argument.children + return unless child_node return unless current_time?(child_node, method_name) || current_time_with_convert?(child_node, method_name) add_offense(node) { |corrector| corrector.replace(node, 'freeze_time') } diff --git a/spec/rubocop/cop/rails/freeze_time_spec.rb b/spec/rubocop/cop/rails/freeze_time_spec.rb index 12c3b91b37..0d26421500 100644 --- a/spec/rubocop/cop/rails/freeze_time_spec.rb +++ b/spec/rubocop/cop/rails/freeze_time_spec.rb @@ -70,4 +70,10 @@ travel_to(Time.zone.yesterday.in_time_zone) RUBY end + + it 'does not register an offense when using `travel_to` with an argument of `current` method without receiver' do + expect_no_offenses(<<~RUBY) + travel_to(current) + RUBY + end end