1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/actionpack/test/assertions/response_assertions_test.rb
Victor Costan c759a93454 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".
2013-11-25 03:09:02 -05:00

63 lines
1.5 KiB
Ruby

require 'abstract_unit'
require 'action_dispatch/testing/assertions/response'
module ActionDispatch
module Assertions
class ResponseAssertionsTest < ActiveSupport::TestCase
include ResponseAssertions
FakeResponse = Struct.new(:response_code) do
[:success, :missing, :redirect, :error].each do |sym|
define_method("#{sym}?") do
sym == response_code
end
end
end
def test_assert_response_predicate_methods
[:success, :missing, :redirect, :error].each do |sym|
@response = FakeResponse.new sym
assert_response sym
assert_raises(MiniTest::Assertion) {
assert_response :unauthorized
}
end
end
def test_assert_response_fixnum
@response = FakeResponse.new 400
assert_response 400
assert_raises(MiniTest::Assertion) {
assert_response :unauthorized
}
assert_raises(MiniTest::Assertion) {
assert_response 500
}
end
def test_assert_response_sym_status
@response = FakeResponse.new 401
assert_response :unauthorized
assert_raises(MiniTest::Assertion) {
assert_response :ok
}
assert_raises(MiniTest::Assertion) {
assert_response :success
}
end
def test_assert_response_sym_typo
@response = FakeResponse.new 200
assert_raises(ArgumentError) {
assert_response :succezz
}
end
end
end
end