mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
c759a93454
This commit makes it really easy to debug errors due to typos like "assert_response :succezz".
63 lines
1.5 KiB
Ruby
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
|