Browse files

Better error message for typos in assert_response argument.

This commit makes it really easy to debug errors due to typos like
"assert_response :succezz".
  • Loading branch information...
1 parent 9dc89f3 commit c759a93454b10d9a908d3a3a102546fc70160b91 @pwnall pwnall committed Nov 24, 2013
View
8 actionpack/CHANGELOG.md
@@ -1,3 +1,11 @@
+* Better error message for typos in assert_response argument.
+
+ When the response type argument to `assert_response` is not a known
+ response type, `assert_response` now throws an ArgumentError with a clear
+ message. This is intended to help debug typos in the response type.
+
+ *Victor Costan*
+
* Fix formatting for `rake routes` when a section is shorter than a header.
*Sıtkı Bağdat*
View
3 actionpack/lib/action_dispatch/testing/assertions/response.rb
@@ -27,6 +27,9 @@ def assert_response(type, message = nil)
assert @response.send("#{type}?"), message
else
code = Rack::Utils::SYMBOL_TO_STATUS_CODE[type]
+ if code.nil?
+ raise ArgumentError, "Invalid response type :#{type}"
+ end
assert_equal code, @response.response_code, message
end
else
View
8 actionpack/test/assertions/response_assertions_test.rb
@@ -50,6 +50,14 @@ def test_assert_response_sym_status
assert_response :success
}
end
+
+ def test_assert_response_sym_typo
+ @response = FakeResponse.new 200
+
+ assert_raises(ArgumentError) {
+ assert_response :succezz
+ }
+ end
end
end
end

0 comments on commit c759a93

Please sign in to comment.