From e48fec2660ef4e098faa3cdd2dc7ac0a68b512d0 Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Mon, 20 Jan 2025 18:54:40 +0900 Subject: [PATCH] [Fix #1423] Fix an error for `Rails/StrongParametersExpect` This PR fixes an error for `Rails/StrongParametersExpect` when using `permit` with no arguments. Fixes #1423. --- .../fix_an_error_for_rails_strong_parameters_expect.md | 1 + lib/rubocop/cop/rails/strong_parameters_expect.rb | 2 +- spec/rubocop/cop/rails/strong_parameters_expect_spec.rb | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 changelog/fix_an_error_for_rails_strong_parameters_expect.md diff --git a/changelog/fix_an_error_for_rails_strong_parameters_expect.md b/changelog/fix_an_error_for_rails_strong_parameters_expect.md new file mode 100644 index 0000000000..4db69500b6 --- /dev/null +++ b/changelog/fix_an_error_for_rails_strong_parameters_expect.md @@ -0,0 +1 @@ +* [#1423](https://github.com/rubocop/rubocop-rails/issues/1423): Fix an error for `Rails/StrongParametersExpect` when using `permit` with no arguments. ([@koic][]) diff --git a/lib/rubocop/cop/rails/strong_parameters_expect.rb b/lib/rubocop/cop/rails/strong_parameters_expect.rb index 54b108ab6a..921c13940c 100644 --- a/lib/rubocop/cop/rails/strong_parameters_expect.rb +++ b/lib/rubocop/cop/rails/strong_parameters_expect.rb @@ -32,7 +32,7 @@ class StrongParametersExpect < Base def_node_matcher :params_require_permit, <<~PATTERN $(call $(call - (send nil? :params) :require _) :permit ...) + (send nil? :params) :require _) :permit _+) PATTERN def_node_matcher :params_permit_require, <<~PATTERN diff --git a/spec/rubocop/cop/rails/strong_parameters_expect_spec.rb b/spec/rubocop/cop/rails/strong_parameters_expect_spec.rb index f7758327ca..0a0bc30d24 100644 --- a/spec/rubocop/cop/rails/strong_parameters_expect_spec.rb +++ b/spec/rubocop/cop/rails/strong_parameters_expect_spec.rb @@ -136,6 +136,12 @@ RUBY end + it 'does not register an offense when using `params.require(:target).permit`' do + expect_no_offenses(<<~RUBY) + params.require(:target).permit + RUBY + end + it 'does not register an offense when using `params[:name]`' do expect_no_offenses(<<~RUBY) params[:name]