Test ArraySerializer less rigorously on Minitest 4

This commit is contained in:
Benjamin Fleischer 2015-11-08 21:15:58 -06:00
parent efe5128a2e
commit e5a109865c
3 changed files with 30 additions and 12 deletions

View File

@ -2,7 +2,7 @@ require 'active_model/serializer/collection_serializer'
class ActiveModel::Serializer class ActiveModel::Serializer
class ArraySerializer < CollectionSerializer class ArraySerializer < CollectionSerializer
def initialize(*) def initialize(*)
warn "Calling deprecated ArraySerializer in #{caller[0]}. Please use CollectionSerializer" warn "Calling deprecated ArraySerializer in #{caller[0..2].join(', ')}. Please use CollectionSerializer"
super super
end end
end end

View File

@ -3,19 +3,35 @@ require_relative 'collection_serializer_test'
module ActiveModel module ActiveModel
class Serializer class Serializer
class ArraySerializerTest < CollectionSerializerTest # Minitest.run_one_method isn't present in minitest 4
extend ActiveSupport::Testing::Stream if $minitest_version > 4 # rubocop:disable Style/GlobalVars
def self.run_one_method(*) class ArraySerializerTest < CollectionSerializerTest
stderr = (capture(:stderr) do extend ActiveSupport::Testing::Stream
super def self.run_one_method(*)
end) stderr = (capture(:stderr) do
if stderr !~ /Calling deprecated ArraySerializer/ super
fail Minitest::Assertion, stderr end)
if stderr !~ /Calling deprecated ArraySerializer/
fail Minitest::Assertion, stderr
end
end
def collection_serializer
ArraySerializer
end end
end end
else
def collection_serializer class ArraySerializerTest < Minitest::Test
ArraySerializer extend ActiveSupport::Testing::Stream
def test_json_key_with_root_warns_when_using_array_serializer
stderr = (capture(:stderr) do
comment = Comment.new
post = Post.new
serializer = ArraySerializer.new([comment, post])
assert_equal serializer.json_key, 'comments'
end)
assert_match(/Calling deprecated ArraySerializer/, stderr)
end
end end
end end
end end

View File

@ -25,10 +25,12 @@ require 'minitest/autorun'
require 'minitest/reporters' require 'minitest/reporters'
Minitest::Reporters.use! Minitest::Reporters.use!
if defined?(Minitest::Test) if defined?(Minitest::Test)
$minitest_version = 5 # rubocop:disable Style/GlobalVars
# Minitest 5 # Minitest 5
# https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest/autorun.rb # https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest/autorun.rb
# https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest.rb#L45-L59 # https://github.com/seattlerb/minitest/blob/e21fdda9d/lib/minitest.rb#L45-L59
else else
$minitest_version = 4 # rubocop:disable Style/GlobalVars
# Minitest 4 # Minitest 4
# https://github.com/seattlerb/minitest/blob/644a52fd0/lib/minitest/autorun.rb # https://github.com/seattlerb/minitest/blob/644a52fd0/lib/minitest/autorun.rb
# https://github.com/seattlerb/minitest/blob/644a52fd0/lib/minitest/unit.rb#L768-L787 # https://github.com/seattlerb/minitest/blob/644a52fd0/lib/minitest/unit.rb#L768-L787