Class: RSpec::Rails::Matchers::HaveHttpStatus::SymbolicStatus Private
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
|
|
Instance Chain:
|
|
Inherits: |
RSpec::Rails::Matchers::BaseMatcher
|
Defined in: | rspec-rails/lib/rspec/rails/matchers/have_http_status.rb |
Overview
Provides an implementation for RSpec::Rails::Matchers#have_http_status matching against Rack symbol http status codes.
Not intended to be instantiated directly.
Constant Summary
::RSpec::Rails::Matchers::BaseMatcher
- Inherited
Class Method Summary
- .new(status) ⇒ SymbolicStatus constructor Internal use only
::RSpec::Rails::Matchers::BaseMatcher
- Inherited
.matcher_name, .new, | |
.underscore | Borrowed from ActiveSupport. |
Instance Attribute Summary
-
#expected_status
readonly
private
Internal use only
The initialized expected status symbol.
::RSpec::Rails::Matchers::BaseMatcher
- Inherited
#actual, | |
#diffable? |
|
#expected, #expects_call_stack_jump?, #matcher_name, #matcher_name=, #rescued_exception, | |
#supports_block_expectations? | Most matchers are value matchers (i.e. meant to work with ‘expect(value)`) rather than block matchers (i.e. meant to work with `expect { }`), so this defaults to false. |
Instance Method Summary
- #description ⇒ String Internal use only
- #failure_message ⇒ String Internal use only
- #failure_message_when_negated ⇒ String Internal use only
- #matches?(response) ⇒ Boolean Internal use only
- #actual_status ⇒ Symbol private Internal use only
-
#compute_status_from(code) ⇒ Symbol
private
Internal use only
Reverse lookup of the Rack status code symbol based on the numeric http code.
- #pp_actual ⇒ String private Internal use only
- #pp_expected ⇒ String private Internal use only
- #pp_status(status, code) ⇒ String private Internal use only
-
#set_expected_code!
private
Internal use only
Sets
expected
to the numeric http code based on the Rack #expected_status status.
::RSpec::Rails::Matchers::HaveHttpStatus
- Included
#invalid_response_type_message, | |
#as_test_response | Conversion function to coerce the provided object into an |
::RSpec::Rails::Matchers::BaseMatcher
- Inherited
#actual_formatted, | |
#description | Generates a description using |
#expected_formatted, | |
#match_unless_raises | Used to wrap a block of code that will indicate failure by raising one of the named exceptions. |
#matches? | Indicates if the match is successful. |
#assert_ivars, #present_ivars |
::RSpec::Rails::Matchers::BaseMatcher::DefaultFailureMessages
- Included
#failure_message | Provides a good generic failure message. |
#failure_message_when_negated | Provides a good generic negative failure message. |
::RSpec::Rails::Matchers::BaseMatcher::HashFormatting
- Included
#improve_hash_formatting | ‘{ |
::RSpec::Matchers::Composable
- Included
#& | Alias for Matchers::Composable#and. |
#=== | Delegates to #matches?. |
#and | Creates a compound |
#description_of | Returns the description of the given object in a way that is aware of composed matchers. |
#or | Creates a compound |
#values_match? | This provides a generic way to fuzzy-match an expected value against an actual value. |
#| | Alias for Matchers::Composable#or. |
#should_enumerate? | We should enumerate arrays as long as they are not recursive. |
#surface_descriptions_in | Transforms the given data structure (typically a hash or array) into a new data structure that, when |
#unreadable_io?, | |
#with_matchers_cloned | Historically, a single matcher instance was only checked against a single value. |
Instance Attribute Details
#expected_status (readonly, private)
The initialized expected status symbol
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 170
attr_reader :expected_status
Instance Method Details
#actual_status ⇒ Symbol
(private)
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 176
def actual_status return unless actual @actual_status ||= compute_status_from(actual) end
#compute_status_from(code) ⇒ Symbol
(private)
Reverse lookup of the Rack status code symbol based on the numeric http code
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 187
def compute_status_from(code) status, _ = Rack::Utils::SYMBOL_TO_STATUS_CODE.find do |_, c| c == code end status end
#description ⇒ String
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 151
def description "respond with status code #{pp_expected}" end
#failure_message ⇒ String
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 156
def || "expected the response to have status code #{pp_expected} but it" \ " was #{pp_actual}" end
#failure_message_when_negated ⇒ String
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 163
def || "expected the response not to have status code #{pp_expected} " \ "but it did" end
#matches?(response) ⇒ Boolean
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 141
def matches?(response) test_response = as_test_response(response) @actual = test_response.response_code expected == @actual rescue TypeError => _ignored @invalid_response = response false end
#pp_actual ⇒ String
(private)
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 195
def pp_actual pp_status(actual_status, actual) end
#pp_expected ⇒ String
(private)
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 200
def pp_expected pp_status(expected_status, expected) end
#pp_status(status, code) ⇒ String
(private)
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 205
def pp_status(status, code) if status "#{status.inspect} (#{code})" else code.to_s end end
#set_expected_code! (private)
Sets expected
to the numeric http code based on the Rack #expected_status status
# File 'rspec-rails/lib/rspec/rails/matchers/have_http_status.rb', line 218
def set_expected_code! @expected ||= Rack::Utils.status_code(expected_status) end