Class: RuboCop::Cop::Committee::RedundantResponseStatusAssertions

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector
Includes:
RangeHelp
Defined in:
lib/rubocop/cop/committee/redundant_response_status_assertions.rb

Overview

Check for validation of redundant response HTTP status codes.

Examples:

# bad
it 'something' do
  subject
  expect(response).to have_http_status 400
  assert_schema_conform(400)
end

# good
it 'something' do
  subject
  assert_schema_conform(400)
end

Constant Summary collapse

MSG =
"Remove redundant HTTP response status code validation."
RESTRICT_ON_SEND =
%i[assert_schema_conform assert_response_schema_confirm].freeze

Instance Method Summary collapse

Instance Method Details

#have_http_status(node) ⇒ Object



30
31
32
# File 'lib/rubocop/cop/committee/redundant_response_status_assertions.rb', line 30

def_node_search :have_http_status, <<~PATTERN
  $(send nil? :have_http_status (:int _))
PATTERN

#on_send(node) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/rubocop/cop/committee/redundant_response_status_assertions.rb', line 34

def on_send(node)
  return if node.first_argument.nil?

  have_http_status(node.parent) do |http_node|
    return autocorrect(node, http_node.parent.loc.expression)
  end
end