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 ArraySerializer < CollectionSerializer
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
end
end

View File

@ -3,19 +3,35 @@ require_relative 'collection_serializer_test'
module ActiveModel
class Serializer
class ArraySerializerTest < CollectionSerializerTest
extend ActiveSupport::Testing::Stream
def self.run_one_method(*)
stderr = (capture(:stderr) do
super
end)
if stderr !~ /Calling deprecated ArraySerializer/
fail Minitest::Assertion, stderr
# Minitest.run_one_method isn't present in minitest 4
if $minitest_version > 4 # rubocop:disable Style/GlobalVars
class ArraySerializerTest < CollectionSerializerTest
extend ActiveSupport::Testing::Stream
def self.run_one_method(*)
stderr = (capture(:stderr) do
super
end)
if stderr !~ /Calling deprecated ArraySerializer/
fail Minitest::Assertion, stderr
end
end
def collection_serializer
ArraySerializer
end
end
def collection_serializer
ArraySerializer
else
class ArraySerializerTest < Minitest::Test
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

View File

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