@@ -158,8 +158,6 @@ def test_serialization_scope_admin
158
158
assert_equal expected_json , @response . body
159
159
end
160
160
end
161
- # FIXME: Has bugs. See comments below and
162
- # https://github.com/rails-api/active_model_serializers/issues/1509
163
161
class NilSerializationScopeTest < ActionController ::TestCase
164
162
class PostViewContextTestController < ActionController ::Base
165
163
serialization_scope nil
@@ -171,12 +169,15 @@ def render_post_with_no_scope
171
169
render json : new_post , serializer : PostSerializer , adapter : :json
172
170
end
173
171
174
- # TODO: run test when
175
- # global state in Serializer._serializer_instance_methods is fixed
176
- # def render_post_with_passed_in_scope
177
- # self.current_user = User.new(id: 3, name: 'Pete', admin: false)
178
- # render json: new_post, serializer: PostSerializer, adapter: :json, scope: current_user, scope_name: :current_user
179
- # end
172
+ def render_post_with_passed_in_scope
173
+ self . current_user = User . new ( id : 3 , name : 'Pete' , admin : false )
174
+ render json : new_post , serializer : PostSerializer , adapter : :json , scope : current_user , scope_name : :current_user
175
+ end
176
+
177
+ def render_post_with_passed_in_scope_without_scope_name
178
+ self . current_user = User . new ( id : 3 , name : 'Pete' , admin : false )
179
+ render json : new_post , serializer : PostSerializer , adapter : :json , scope : current_user
180
+ end
180
181
181
182
private
182
183
@@ -194,8 +195,6 @@ def test_nil_serialization_scope_object
194
195
assert_nil @controller . serialization_scope
195
196
end
196
197
197
- # TODO: change to NoMethodError and match 'admin?' when the
198
- # global state in Serializer._serializer_instance_methods is fixed
199
198
def test_nil_scope
200
199
if Rails . version . start_with? ( '4.0' )
201
200
exception_class = NoMethodError
@@ -210,21 +209,34 @@ def test_nil_scope
210
209
assert_match exception_matcher , exception . message
211
210
end
212
211
213
- # TODO: run test when
214
- # global state in Serializer._serializer_instance_methods is fixed
215
- # def test_nil_scope_passed_in_current_user
216
- # get :render_post_with_passed_in_scope
217
- # expected_json = {
218
- # post: {
219
- # id: 4,
220
- # title: 'Title',
221
- # body: "The 'scope' is the 'current_user': true",
222
- # comments: [
223
- # { id: 2, body: 'Scoped' }
224
- # ]
225
- # }
226
- # }.to_json
227
- # assert_equal expected_json, @response.body
228
- # end
212
+ def test_serialization_scope_is_and_nil_scope_passed_in_current_user
213
+ get :render_post_with_passed_in_scope
214
+ expected_json = {
215
+ post : {
216
+ id : 4 ,
217
+ title : 'Title' ,
218
+ body : "The 'scope' is the 'current_user': true" ,
219
+ comments : [
220
+ { id : 2 , body : 'Scoped' }
221
+ ]
222
+ }
223
+ } . to_json
224
+ assert_equal expected_json , @response . body
225
+ end
226
+
227
+ def test_serialization_scope_is_nil_and_scope_passed_in_current_user_without_scope_name
228
+ get :render_post_with_passed_in_scope_without_scope_name
229
+ expected_json = {
230
+ post : {
231
+ id : 4 ,
232
+ title : 'Title' ,
233
+ body : "The 'scope' is the 'current_user': true" ,
234
+ comments : [
235
+ { id : 2 , body : 'Scoped' }
236
+ ]
237
+ }
238
+ } . to_json
239
+ assert_equal expected_json , @response . body
240
+ end
229
241
end
230
242
end
0 commit comments