Fix Rails/HttpPositionalArguments cop (#24699)

This commit is contained in:
Matt Jankowski 2023-04-30 00:43:28 -04:00 committed by GitHub
parent 678d836c7d
commit 8dcfb6e0ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 17 deletions

View file

@ -1367,13 +1367,6 @@ Rails/HasManyOrHasOneDependent:
- 'app/models/user.rb' - 'app/models/user.rb'
- 'app/models/web/push_subscription.rb' - 'app/models/web/push_subscription.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Include.
# Include: spec/**/*, test/**/*
Rails/HttpPositionalArguments:
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb'
# Configuration parameters: Include. # Configuration parameters: Include.
# Include: spec/**/*.rb, test/**/*.rb # Include: spec/**/*.rb, test/**/*.rb
Rails/I18nLocaleAssignment: Rails/I18nLocaleAssignment:

View file

@ -2,9 +2,7 @@
require 'rails_helper' require 'rails_helper'
describe Rack::Attack do describe Rack::Attack, type: :request do
include Rack::Test::Methods
def app def app
Rails.application Rails.application
end end
@ -25,7 +23,7 @@ describe Rack::Attack do
it 'does not change the request status' do it 'does not change the request status' do
limit.times do limit.times do
request.call request.call
expect(last_response.status).to_not eq(429) expect(response).to_not have_http_status(429)
end end
end end
end end
@ -34,13 +32,13 @@ describe Rack::Attack do
it 'returns http too many requests after limit and returns to normal status after period' do it 'returns http too many requests after limit and returns to normal status after period' do
(limit * 2).times do |i| (limit * 2).times do |i|
request.call request.call
expect(last_response.status).to eq(429) if i > limit expect(response).to have_http_status(429) if i > limit
end end
travel period travel period
request.call request.call
expect(last_response.status).to_not eq(429) expect(response).to_not have_http_status(429)
end end
end end
end end
@ -51,7 +49,7 @@ describe Rack::Attack do
context 'through the website' do context 'through the website' do
let(:limit) { 25 } let(:limit) { 25 }
let(:period) { 5.minutes } let(:period) { 5.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } let(:request) { -> { post path, headers: { 'REMOTE_ADDR' => remote_ip } } }
context 'for exact path' do context 'for exact path' do
let(:path) { '/auth' } let(:path) { '/auth' }
@ -69,7 +67,7 @@ describe Rack::Attack do
context 'through the API' do context 'through the API' do
let(:limit) { 5 } let(:limit) { 5 }
let(:period) { 30.minutes } let(:period) { 30.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } let(:request) { -> { post path, headers: { 'REMOTE_ADDR' => remote_ip } } }
context 'for exact path' do context 'for exact path' do
let(:path) { '/api/v1/accounts' } let(:path) { '/api/v1/accounts' }
@ -82,7 +80,7 @@ describe Rack::Attack do
it 'returns http not found' do it 'returns http not found' do
request.call request.call
expect(last_response.status).to eq(404) expect(response).to have_http_status(404)
end end
end end
end end
@ -91,7 +89,7 @@ describe Rack::Attack do
describe 'throttle excessive sign-in requests by IP address' do describe 'throttle excessive sign-in requests by IP address' do
let(:limit) { 25 } let(:limit) { 25 }
let(:period) { 5.minutes } let(:period) { 5.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } } let(:request) { -> { post path, headers: { 'REMOTE_ADDR' => remote_ip } } }
context 'for exact path' do context 'for exact path' do
let(:path) { '/auth/sign_in' } let(:path) { '/auth/sign_in' }