aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/assertions
diff options
context:
space:
mode:
authorPrathamesh Sonpatki <csonpatki@gmail.com>2015-12-04 08:33:21 +0530
committerPrathamesh Sonpatki <csonpatki@gmail.com>2015-12-04 13:13:25 +0530
commit1ee87e42caa832510dfb4a1cb6c7643620447166 (patch)
tree5fe0e339ede05280353f10c607c2762c16baab4f /actionpack/test/assertions
parent8bdbf88dfd231f80b8e757b36e77ff72e6b6b83c (diff)
downloadrails-1ee87e42caa832510dfb4a1cb6c7643620447166.tar.gz
rails-1ee87e42caa832510dfb4a1cb6c7643620447166.tar.bz2
rails-1ee87e42caa832510dfb4a1cb6c7643620447166.zip
Add redirection path in the error message of assert_response if response is :redirect
- If the assert_response is checking for any non-redirect response like :success and actual response is :redirect then, the error message displayed was - Expected response to be a <success>, but was <302> - This commit adds the redirect path to the error message of assert_response if the response is :redirect. So above message is changed to - Expected response to be a <success>, but was a redirect to <http://test.host/posts/lol>
Diffstat (limited to 'actionpack/test/assertions')
-rw-r--r--actionpack/test/assertions/response_assertions_test.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/actionpack/test/assertions/response_assertions_test.rb b/actionpack/test/assertions/response_assertions_test.rb
index 82c747680d..6c7036aa1a 100644
--- a/actionpack/test/assertions/response_assertions_test.rb
+++ b/actionpack/test/assertions/response_assertions_test.rb
@@ -6,7 +6,12 @@ module ActionDispatch
class ResponseAssertionsTest < ActiveSupport::TestCase
include ResponseAssertions
- FakeResponse = Struct.new(:response_code) do
+ FakeResponse = Struct.new(:response_code, :location) do
+ def initialize(*)
+ super
+ self.location ||= "http://test.example.com/posts"
+ end
+
[:successful, :not_found, :redirection, :server_error].each do |sym|
define_method("#{sym}?") do
sym == response_code
@@ -58,6 +63,16 @@ module ActionDispatch
assert_response :succezz
}
end
+
+ def test_message_when_response_is_redirect_but_asserted_for_status_other_than_redirect
+ @response = FakeResponse.new :redirection, "http://test.host/posts/redirect/1"
+ error = assert_raises(Minitest::Assertion) do
+ assert_response :success
+ end
+
+ expected = "Expected response to be a <success>, but was a redirect to <http://test.host/posts/redirect/1>."
+ assert_match expected, error.message
+ end
end
end
end