@@ -25,6 +25,10 @@ def self.name
25
25
@instance_options = { }
26
26
end
27
27
28
+ def evaluate_association_value ( association )
29
+ association . lazy_association . eval_reflection_block
30
+ end
31
+
28
32
# TODO: Remaining tests
29
33
# test_reflection_value_block_with_scope
30
34
# test_reflection_value_uses_serializer_instance_method
@@ -175,10 +179,12 @@ def test_reflection_block_with_link_mutates_the_reflection_links
175
179
176
180
# Build Association
177
181
association = reflection . build_association ( serializer_instance , @instance_options )
182
+
178
183
# Assert association links empty when not yet evaluated
179
184
assert_equal @empty_links , reflection . options . fetch ( :links )
180
185
assert_equal @empty_links , association . links
181
- association . object # eager eval association
186
+
187
+ evaluate_association_value ( association )
182
188
183
189
assert_equal @expected_links , association . links
184
190
assert_equal @expected_links , reflection . options . fetch ( :links )
@@ -200,12 +206,16 @@ def test_reflection_block_with_link_block_mutates_the_reflection_links
200
206
201
207
# Build Association
202
208
association = reflection . build_association ( serializer_instance , @instance_options )
209
+
203
210
# Assert association links empty when not yet evaluated
204
211
assert_equal @empty_links , association . links
205
- association . object # eager eval association
212
+
213
+ evaluate_association_value ( association )
214
+
206
215
# Assert before instance_eval link
207
216
link = association . links . fetch ( :self )
208
217
assert_respond_to link , :call
218
+ assert_respond_to reflection . options . fetch ( :links ) . fetch ( :self ) , :call
209
219
210
220
# Assert after instance_eval link
211
221
assert_equal @expected_links . fetch ( :self ) , reflection . instance_eval ( &link )
@@ -226,7 +236,9 @@ def test_reflection_block_with_meta_mutates_the_reflection_meta
226
236
227
237
# Build Association
228
238
association = reflection . build_association ( serializer_instance , @instance_options )
229
- association . object # eager eval required
239
+
240
+ evaluate_association_value ( association )
241
+
230
242
assert_equal @expected_meta , association . meta
231
243
assert_equal @expected_meta , reflection . options . fetch ( :meta )
232
244
end
@@ -248,7 +260,9 @@ def test_reflection_block_with_meta_block_mutates_the_reflection_meta
248
260
# Build Association
249
261
association = reflection . build_association ( serializer_instance , @instance_options )
250
262
# Assert before instance_eval meta
251
- association . object # eager eval required
263
+
264
+ evaluate_association_value ( association )
265
+
252
266
assert_respond_to association . meta , :call
253
267
assert_respond_to reflection . options . fetch ( :meta ) , :call
254
268
@@ -281,7 +295,8 @@ def test_reflection_block_with_meta_in_link_block_mutates_the_reflection_meta
281
295
assert_nil association . meta
282
296
assert_nil reflection . options . fetch ( :meta )
283
297
284
- association . object # eager eval required
298
+ evaluate_association_value ( association )
299
+
285
300
link = association . links . fetch ( :self )
286
301
assert_respond_to link , :call
287
302
assert_respond_to reflection . options . fetch ( :links ) . fetch ( :self ) , :call
@@ -290,8 +305,7 @@ def test_reflection_block_with_meta_in_link_block_mutates_the_reflection_meta
290
305
# Assert after instance_eval link
291
306
assert_equal 'no_uri_validation' , reflection . instance_eval ( &link )
292
307
assert_equal @expected_meta , reflection . options . fetch ( :meta )
293
- return # oh no, need to figure this out
294
- assert_nil association . meta # rubocop:disable Lint/UnreachableCode
308
+ assert_equal @expected_meta , association . meta
295
309
end
296
310
# rubocop:enable Metrics/AbcSize
297
311
@@ -319,7 +333,9 @@ def test_reflection_block_with_meta_block_in_link_block_mutates_the_reflection_m
319
333
assert_nil reflection . options . fetch ( :meta )
320
334
321
335
# Assert before instance_eval link
322
- association . object # eager eval required
336
+
337
+ evaluate_association_value ( association )
338
+
323
339
link = association . links . fetch ( :self )
324
340
assert_nil reflection . options . fetch ( :meta )
325
341
assert_respond_to link , :call
@@ -330,12 +346,11 @@ def test_reflection_block_with_meta_block_in_link_block_mutates_the_reflection_m
330
346
assert_respond_to association . links . fetch ( :self ) , :call
331
347
# Assert before instance_eval link meta
332
348
assert_respond_to reflection . options . fetch ( :meta ) , :call
333
- return # oh no, need to figure this out
334
- assert_nil association . meta # rubocop:disable Lint/UnreachableCode
349
+ assert_respond_to association . meta , :call
335
350
336
351
# Assert after instance_eval link meta
337
352
assert_equal @expected_meta , reflection . instance_eval ( &reflection . options . fetch ( :meta ) )
338
- assert_nil association . meta
353
+ assert_respond_to association . meta , :call
339
354
end
340
355
# rubocop:enable Metrics/AbcSize
341
356
@@ -356,7 +371,9 @@ def test_no_href_in_vanilla_reflection
356
371
# Build Association
357
372
association = reflection . build_association ( serializer_instance , @instance_options )
358
373
# Assert before instance_eval link
359
- association . object # eager eval required
374
+
375
+ evaluate_association_value ( association )
376
+
360
377
link = association . links . fetch ( :self )
361
378
assert_respond_to link , :call
362
379
@@ -380,7 +397,9 @@ def test_mutating_reflection_block_is_not_thread_safe
380
397
reflection = serializer_class . _reflections . fetch ( :blog )
381
398
assert_nil reflection . options . fetch ( :meta )
382
399
association = reflection . build_association ( serializer_instance , @instance_options )
383
- association . object # eager eval required
400
+
401
+ evaluate_association_value ( association )
402
+
384
403
assert_equal model1_meta , association . meta
385
404
assert_equal model1_meta , reflection . options . fetch ( :meta )
386
405
@@ -396,7 +415,9 @@ def test_mutating_reflection_block_is_not_thread_safe
396
415
assert_equal model1_meta , reflection . options . fetch ( :meta )
397
416
398
417
association = reflection . build_association ( serializer_instance , @instance_options )
399
- association . object # eager eval required
418
+
419
+ evaluate_association_value ( association )
420
+
400
421
assert_equal model2_meta , association . meta
401
422
assert_equal model2_meta , reflection . options . fetch ( :meta )
402
423
end
0 commit comments