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,6 +3,8 @@ require_relative 'collection_serializer_test'
module ActiveModel module ActiveModel
class Serializer class Serializer
# Minitest.run_one_method isn't present in minitest 4
if $minitest_version > 4 # rubocop:disable Style/GlobalVars
class ArraySerializerTest < CollectionSerializerTest class ArraySerializerTest < CollectionSerializerTest
extend ActiveSupport::Testing::Stream extend ActiveSupport::Testing::Stream
def self.run_one_method(*) def self.run_one_method(*)
@ -18,5 +20,19 @@ module ActiveModel
ArraySerializer ArraySerializer
end end
end end
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 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