Skip to content

Commit 9909908

Browse files
committed
Merge pull request #1384 from bf4/fix_ci_failures
Fix db state leaking across tests
2 parents fce856f + 6aa5a4f commit 9909908

File tree

2 files changed

+32
-36
lines changed

2 files changed

+32
-36
lines changed

test/grape_test.rb

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,42 @@
44

55
class 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
8982
end

test/serializers/associations_test.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ def test_virtual_attribute_block
153153
}
154154

155155
assert_equal expected, actual
156+
ensure
157+
::ARModels::Post.delete_all
158+
::ARModels::Comment.delete_all
156159
end
157160

158161
class NamespacedResourcesTest < Minitest::Test

0 commit comments

Comments
 (0)