3
3
module ActionController
4
4
module Serialization
5
5
class JsonApi
6
- class LinkedTest < ActionDispatch :: IntegrationTest
6
+ class LinkedTest < ActionController :: TestCase
7
7
class LinkedTestController < ActionController ::Base
8
+ require 'active_model_serializers/register_jsonapi_renderer'
8
9
def setup_post
9
10
ActionController ::Base . cache_store . clear
10
11
@role1 = Role . new ( id : 1 , name : 'admin' )
@@ -38,76 +39,70 @@ def setup_post
38
39
39
40
def render_resource_without_include
40
41
setup_post
41
- render json : @post
42
+ render jsonapi : @post
42
43
end
43
44
44
45
def render_resource_with_include
45
46
setup_post
46
- render json : @post , adapter : :json_api , include : [ :author ]
47
+ render jsonapi : @post , include : [ :author ]
47
48
end
48
49
49
50
def render_resource_with_include_of_custom_key_by_original
50
51
setup_post
51
- render json : @post , adapter : :json_api , include : [ :reviews ] , serializer : PostWithCustomKeysSerializer
52
+ render jsonapi : @post , include : [ :reviews ] , serializer : PostWithCustomKeysSerializer
52
53
end
53
54
54
55
def render_resource_with_nested_include
55
56
setup_post
56
- render json : @post , adapter : :json_api , include : [ comments : [ :author ] ]
57
+ render jsonapi : @post , include : [ comments : [ :author ] ]
57
58
end
58
59
59
60
def render_resource_with_nested_has_many_include_wildcard
60
61
setup_post
61
- render json : @post , adapter : :json_api , include : 'author.*'
62
+ render jsonapi : @post , include : 'author.*'
62
63
end
63
64
64
65
def render_resource_with_missing_nested_has_many_include
65
66
setup_post
66
67
@post . author = @author2 # author2 has no roles.
67
- render json : @post , adapter : :json_api , include : [ author : [ :roles ] ]
68
+ render jsonapi : @post , include : [ author : [ :roles ] ]
68
69
end
69
70
70
71
def render_collection_with_missing_nested_has_many_include
71
72
setup_post
72
73
@post . author = @author2
73
- render json : [ @post , @post2 ] , adapter : :json_api , include : [ author : [ :roles ] ]
74
+ render jsonapi : [ @post , @post2 ] , include : [ author : [ :roles ] ]
74
75
end
75
76
76
77
def render_collection_without_include
77
78
setup_post
78
- render json : [ @post ] , adapter : :json_api
79
+ render jsonapi : [ @post ]
79
80
end
80
81
81
82
def render_collection_with_include
82
83
setup_post
83
- render json : [ @post ] , adapter : :json_api , include : 'author, comments'
84
+ render jsonapi : [ @post ] , include : 'author, comments'
84
85
end
85
86
end
86
87
87
- setup do
88
- @routes = Rails . application . routes . draw do
89
- ActiveSupport ::Deprecation . silence do
90
- match ':action' , :to => LinkedTestController , via : [ :get , :post ]
91
- end
92
- end
93
- end
88
+ tests LinkedTestController
94
89
95
90
def test_render_resource_without_include
96
- get '/ render_resource_without_include'
91
+ get : render_resource_without_include
97
92
response = JSON . parse ( @response . body )
98
93
refute response . key? 'included'
99
94
end
100
95
101
96
def test_render_resource_with_include
102
- get '/ render_resource_with_include'
97
+ get : render_resource_with_include
103
98
response = JSON . parse ( @response . body )
104
99
assert response . key? 'included'
105
100
assert_equal 1 , response [ 'included' ] . size
106
101
assert_equal 'Steve K.' , response [ 'included' ] . first [ 'attributes' ] [ 'name' ]
107
102
end
108
103
109
104
def test_render_resource_with_nested_has_many_include
110
- get '/ render_resource_with_nested_has_many_include_wildcard'
105
+ get : render_resource_with_nested_has_many_include_wildcard
111
106
response = JSON . parse ( @response . body )
112
107
expected_linked = [
113
108
{
@@ -149,7 +144,7 @@ def test_render_resource_with_nested_has_many_include
149
144
end
150
145
151
146
def test_render_resource_with_include_of_custom_key_by_original
152
- get '/ render_resource_with_include_of_custom_key_by_original'
147
+ get : render_resource_with_include_of_custom_key_by_original
153
148
response = JSON . parse ( @response . body )
154
149
assert response . key? 'included'
155
150
@@ -161,33 +156,33 @@ def test_render_resource_with_include_of_custom_key_by_original
161
156
end
162
157
163
158
def test_render_resource_with_nested_include
164
- get '/ render_resource_with_nested_include'
159
+ get : render_resource_with_nested_include
165
160
response = JSON . parse ( @response . body )
166
161
assert response . key? 'included'
167
162
assert_equal 3 , response [ 'included' ] . size
168
163
end
169
164
170
165
def test_render_collection_without_include
171
- get '/ render_collection_without_include'
166
+ get : render_collection_without_include
172
167
response = JSON . parse ( @response . body )
173
168
refute response . key? 'included'
174
169
end
175
170
176
171
def test_render_collection_with_include
177
- get '/ render_collection_with_include'
172
+ get : render_collection_with_include
178
173
response = JSON . parse ( @response . body )
179
174
assert response . key? 'included'
180
175
end
181
176
182
177
def test_render_resource_with_nested_attributes_even_when_missing_associations
183
- get '/ render_resource_with_missing_nested_has_many_include'
178
+ get : render_resource_with_missing_nested_has_many_include
184
179
response = JSON . parse ( @response . body )
185
180
assert response . key? 'included'
186
181
refute has_type? ( response [ 'included' ] , 'roles' )
187
182
end
188
183
189
184
def test_render_collection_with_missing_nested_has_many_include
190
- get '/ render_collection_with_missing_nested_has_many_include'
185
+ get : render_collection_with_missing_nested_has_many_include
191
186
response = JSON . parse ( @response . body )
192
187
assert response . key? 'included'
193
188
assert has_type? ( response [ 'included' ] , 'roles' )
0 commit comments