Class: RSpec::Rails::Matchers::HaveHttpStatus::SymbolicStatus Private

Inherits:
Matchers::BuiltIn::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 Rack symbol http status codes.

Not intended to be instantiated directly.

Examples:

expect(response).to have_http_status(:created)

See Also:

Instance Method Summary (collapse)

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

as_test_response, #invalid_response_type_message, matcher_for_status

Constructor Details

- (SymbolicStatus) initialize(status)

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 SymbolicStatus



127
128
129
130
131
132
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 127

def initialize(status)
  @expected_status = status
  @actual = nil
  @invalid_response = nil
  set_expected_code!
end

Instance Method Details

- (String) description

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)


147
148
149
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 147

def description
  "respond with status code #{pp_expected}"
end

- (String) failure_message

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



152
153
154
155
156
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 152

def failure_message
  invalid_response_type_message ||
  "expected the response to have status code #{pp_expected} but it" \
    " was #{pp_actual}"
end

- (String) failure_message_when_negated

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



159
160
161
162
163
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 159

def failure_message_when_negated
  invalid_response_type_message ||
  "expected the response not to have status code #{pp_expected} " \
    "but it did"
end

- (Boolean) matches?(response)

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 Rack's associated numeric HTTP code matched the response code

Parameters:

  • response (Object)

    object providing an http code to match

Returns:

  • (Boolean)

    true if Rack's associated numeric HTTP code matched the response code



137
138
139
140
141
142
143
144
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 137

def matches?(response)
  test_response = as_test_response(response)
  @actual = test_response.response_code
  expected == @actual
rescue TypeError => _ignored
  @invalid_response = response
  false
end