Skip to content

Commit 1827588

Browse files
committed
Adding tests.
1 parent 08fd870 commit 1827588

File tree

2 files changed

+51
-1
lines changed

2 files changed

+51
-1
lines changed

lib/active_model/serializable.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
module ActiveModel
44
module Serializable
5-
INSTRUMENTATION_KEY = "!serialize.active_model_serializers".freeze
5+
INSTRUMENTATION_KEY = '!serialize.active_model_serializers'.freeze
66

77
def self.included(base)
88
base.extend Utils
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
require 'test_helper'
2+
3+
module ActiveModel
4+
class SerializableTest
5+
class InstrumentationTest < Minitest::Test
6+
def setup
7+
@events = []
8+
9+
@subscriber = ActiveSupport::Notifications.subscribe('!serialize.active_model_serializers') do |name, start, finish, id, payload|
10+
@events << { name: name, serializer: payload[:serializer] }
11+
end
12+
end
13+
14+
def teardown
15+
ActiveSupport::Notifications.unsubscribe(@subscriber) if defined?(@subscriber)
16+
end
17+
18+
def test_instruments_default_serializer
19+
DefaultSerializer.new(1).as_json
20+
21+
assert_equal [{ name: '!serialize.active_model_serializers', serializer: 'ActiveModel::DefaultSerializer' }], @events
22+
end
23+
24+
def test_instruments_serializer
25+
profile = Profile.new(name: 'Name 1', description: 'Description 1', comments: 'Comments 1')
26+
serializer = ProfileSerializer.new(profile)
27+
28+
serializer.as_json
29+
30+
assert_equal [{ name: '!serialize.active_model_serializers', serializer: 'ProfileSerializer' }], @events
31+
end
32+
33+
def test_instruments_array_serializer
34+
profiles = [
35+
Profile.new(name: 'Name 1', description: 'Description 1', comments: 'Comments 1'),
36+
Profile.new(name: 'Name 2', description: 'Description 2', comments: 'Comments 2')
37+
]
38+
serializer = ArraySerializer.new(profiles)
39+
40+
serializer.as_json
41+
42+
assert_equal [
43+
{ name: '!serialize.active_model_serializers', serializer: 'ProfileSerializer' },
44+
{ name: '!serialize.active_model_serializers', serializer: 'ProfileSerializer' },
45+
{ name: '!serialize.active_model_serializers', serializer: 'ActiveModel::ArraySerializer' }
46+
], @events
47+
end
48+
end
49+
end
50+
end

0 commit comments

Comments
 (0)