Skip to content

Commit 160d624

Browse files
authored
Merge pull request #1420 from koic/fix_an_incorrect_autocorrect_for_rails_strong_parameters_expect
[Fix #1417] Fix an incorrect autocorrect for `Rails/StrongParametersExpect`
2 parents b80ecd9 + efc6dc2 commit 160d624

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* [#1417](https://github.com/rubocop/rubocop-rails/issues/1417): Fix an incorrect autocorrect for `Rails/StrongParametersExpect` when using a leading dot multiline call to `require` with `permit`. ([@koic][])

lib/rubocop/cop/rails/strong_parameters_expect.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def on_send(node)
5959
end
6060

6161
add_offense(range, message: format(MSG, prefer: prefer)) do |corrector|
62-
corrector.remove(require_method.loc.dot.join(require_method.source_range.end))
62+
corrector.remove(require_method.receiver.source_range.end.join(require_method.source_range.end))
6363
corrector.replace(permit_method.loc.selector, 'expect')
6464
if replace_argument
6565
corrector.insert_before(permit_method.first_argument, "#{require_key(require_method)}[")

spec/rubocop/cop/rails/strong_parameters_expect_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,20 @@
9898
RUBY
9999
end
100100

101+
it 'registers an offense when using a leading dot multiline call to `params.require(:user).permit(:name, :age)`' do
102+
expect_offense(<<~RUBY)
103+
params
104+
.require(:user)
105+
^^^^^^^^^^^^^^ Use `expect(user: [:name, :age])` instead.
106+
.permit(:name, :age)
107+
RUBY
108+
109+
expect_correction(<<~RUBY)
110+
params
111+
.expect(user: [:name, :age])
112+
RUBY
113+
end
114+
101115
it 'does not register an offense when using `params.expect(user: [:name, :age])`' do
102116
expect_no_offenses(<<~RUBY)
103117
params.expect(user: [:name, :age])

0 commit comments

Comments
 (0)