44
55class ActiveModelSerializers ::GrapeTest < Minitest ::Test
66 include Rack ::Test ::Methods
7+ module Models
8+ def self . model1
9+ ARModels ::Post . new ( id : 1 , title : 'Dummy Title' , body : 'Lorem Ipsum' )
10+ end
11+
12+ def self . model2
13+ ARModels ::Post . new ( id : 2 , title : 'Second Dummy Title' , body : 'Second Lorem Ipsum' )
14+ end
15+
16+ def self . all
17+ @all ||=
18+ begin
19+ model1 . save!
20+ model2 . save!
21+ ARModels ::Post . all
22+ end
23+ end
24+ end
725
826 class GrapeTest < Grape ::API
927 format :json
1028 include Grape ::ActiveModelSerializers
1129
1230 resources :grape do
1331 get '/render' do
14- render ARModels :: Post . new ( title : 'Dummy Title' , body : 'Lorem Ipsum' )
32+ render Models . model1
1533 end
1634
1735 get '/render_with_json_api' do
18- post = ARModels :: Post . new ( title : 'Dummy Title' , body : 'Lorem Ipsum' )
36+ post = Models . model1
1937 render post , meta : { page : 1 , total_pages : 2 } , adapter : :json_api
2038 end
2139
2240 get '/render_array_with_json_api' do
23- post = ARModels ::Post . create ( title : 'Dummy Title' , body : 'Lorem Ipsum' )
24- post . dup . save
25- render ARModels ::Post . all , adapter : :json_api
41+ posts = Models . all
42+ render posts , adapter : :json_api
2643 end
2744 end
2845 end
@@ -34,7 +51,7 @@ def app
3451 def test_formatter_returns_json
3552 get '/grape/render'
3653
37- post = ARModels :: Post . new ( title : 'Dummy Title' , body : 'Lorem Ipsum' )
54+ post = Models . model1
3855 serializable_resource = serializable ( post )
3956
4057 assert last_response . ok?
@@ -44,7 +61,7 @@ def test_formatter_returns_json
4461 def test_render_helper_passes_through_options_correctly
4562 get '/grape/render_with_json_api'
4663
47- post = ARModels :: Post . new ( title : 'Dummy Title' , body : 'Lorem Ipsum' )
64+ post = Models . model1
4865 serializable_resource = serializable ( post , serializer : ARModels ::PostSerializer , adapter : :json_api , meta : { page : 1 , total_pages : 2 } )
4966
5067 assert last_response . ok?
@@ -54,36 +71,12 @@ def test_render_helper_passes_through_options_correctly
5471 def test_formatter_handles_arrays
5572 get '/grape/render_array_with_json_api'
5673
57- expected = {
58- 'data' => [
59- {
60- id : '1' ,
61- type : 'ar_models_posts' ,
62- attributes : {
63- title : 'Dummy Title' ,
64- body : 'Lorem Ipsum'
65- } ,
66- relationships : {
67- comments : { data : [ ] } ,
68- author : { data : nil }
69- }
70- } ,
71- {
72- id : '2' ,
73- type : 'ar_models_posts' ,
74- attributes : {
75- title : 'Dummy Title' ,
76- body : 'Lorem Ipsum'
77- } ,
78- relationships : {
79- comments : { data : [ ] } ,
80- author : { data : nil }
81- }
82- }
83- ]
84- }
74+ posts = Models . all
75+ serializable_resource = serializable ( posts , adapter : :json_api )
8576
8677 assert last_response . ok?
87- assert_equal expected . to_json , last_response . body
78+ assert_equal serializable_resource . to_json , last_response . body
79+ ensure
80+ ARModels ::Post . delete_all
8881 end
8982end
0 commit comments