22
33module RSpecApi
44 module Matchers
5- class MatchStatus
6- def initialize ( expected_status )
7- @expected_status = expected_status
5+ class Status
6+ def initialize ( status )
7+ @expected_status = status
88 end
99
10- def matches? ( actual_code )
11- @actual_code = actual_code
12- actual_code == expected_code
10+ def matches? ( response )
11+ @status = response . status
12+ @status == expected_code
1313 end
1414 alias == matches?
1515
1616 def failure_message_for_should
17- "expected #{ @actual_code } to #{ description } "
17+ "expected HTTP status code #{ expected_code } , got #{ @status } "
1818 end
1919
2020 def failure_message_for_should_not
21- "expected #{ @actual_code } not to #{ description } "
21+ "expected HTTP status code not to be #{ expected_code } , but it was "
2222 end
2323
2424 def description
25- "be #{ @expected_status } "
25+ "be HTTP status code #{ expected_code } "
2626 end
2727
2828 private
@@ -36,7 +36,7 @@ def expected_code
3636 # @example
3737 # status_to_code(:ok) # => 200
3838 # status_to_code(200) # => 200
39- # status_to_code(987) # => raise
39+ # status_to_code(987) # => raise ArgumentError
4040 def status_to_numeric_code ( status )
4141 code = status . is_a? ( Symbol ) ? Rack ::Utils . status_code ( status ) : status
4242 validate_status_code! code
@@ -47,7 +47,7 @@ def status_to_numeric_code(status)
4747 #
4848 # @example
4949 # validate_status_code!(200) # => (no error)
50- # validate_status_code!(999) # => raise
50+ # validate_status_code!(999) # => raise ArgumentError
5151 def validate_status_code! ( code )
5252 valid_codes = Rack ::Utils ::SYMBOL_TO_STATUS_CODE . values
5353 message = "#{ code } must be a valid HTTP status code: #{ valid_codes } "
0 commit comments