Class: RSpec::Rails::Matchers::HaveHttpStatus::NumericCode Private

Inherits:
BaseMatcher
  • Object
show all
Includes:
RSpec::Rails::Matchers::HaveHttpStatus
Defined in:
lib/rspec/rails/matchers/have_http_status.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Provides an implementation for have_http_status matching against numeric http status codes.

Not intended to be instantiated directly.

Examples:

expect(response).to have_http_status(404)

See Also:

  • RSpec::Rails::Matchers.have_http_status

Constant Summary

Constants inherited from BaseMatcher

BaseMatcher::UNDEFINED

Instance Method Summary collapse

Methods included from RSpec::Rails::Matchers::HaveHttpStatus

as_test_response, #invalid_response_type_message, matcher_for_status

Methods inherited from BaseMatcher

#diffable?, #expects_call_stack_jump?, #match_unless_raises, #supports_block_expectations?

Constructor Details

#initialize(code) ⇒ NumericCode

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of NumericCode.

79
80
81
82
83
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 79
def initialize(code)
  @expected = code.to_i
  @actual = nil
  @invalid_response = nil
end

Instance Method Details

#descriptionString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (String)
97
98
99
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 97
def description
  "respond with numeric status code #{expected}"
end

#failure_messageString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns explaining why the match failed.

Returns:

  • (String)

    explaining why the match failed

102
103
104
105
106
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 102
def failure_message
  invalid_response_type_message ||
  "expected the response to have status code #{expected.inspect}" \
    " but it was #{actual.inspect}"
end

#failure_message_when_negatedString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns explaining why the match failed.

Returns:

  • (String)

    explaining why the match failed

109
110
111
112
113
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 109
def failure_message_when_negated
  invalid_response_type_message ||
  "expected the response not to have status code " \
  "#{expected.inspect} but it did"
end

#matches?(response) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns true if the numeric code matched the response code.

Parameters:

  • response (Object)

    object providing an http code to match

Returns:

  • (Boolean)

    true if the numeric code matched the response code

87
88
89
90
91
92
93
94
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 87
def matches?(response)
  test_response = as_test_response(response)
  @actual = test_response.response_code.to_i
  expected == @actual
rescue TypeError => _ignored
  @invalid_response = response
  false
end