Skip to content

Commit 059409b

Browse files
committed
Merge pull request #970 from Rodrigora/fix-test-race-conditions
Fix transient tests failures
2 parents 03ac94b + 7412c8d commit 059409b

File tree

3 files changed

+27
-19
lines changed

3 files changed

+27
-19
lines changed

active_model_serializers.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@ Gem::Specification.new do |spec|
2222

2323
spec.add_development_dependency "rails", ">= 4.0"
2424
spec.add_development_dependency "bundler", "~> 1.6"
25+
spec.add_development_dependency "timecop", ">= 0.7"
2526
spec.add_development_dependency "rake"
2627
end

test/action_controller/serialization_test.rb

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
require 'test_helper'
23

34
module ActionController
@@ -56,7 +57,7 @@ def render_json_array_object_without_serializer
5657
end
5758

5859
def update_and_render_object_with_cache_enabled
59-
@post.updated_at = DateTime.now
60+
@post.updated_at = Time.now
6061

6162
generate_cached_serializer(@post)
6263
render json: @post
@@ -112,7 +113,7 @@ def render_fragment_changed_object_with_relationship
112113

113114
generate_cached_serializer(like)
114115
like.likable = comment2
115-
like.time = DateTime.now.to_s
116+
like.time = Time.now.to_s
116117

117118
render json: like
118119
end
@@ -224,9 +225,6 @@ def test_render_array_using_implicit_serializer_and_meta
224225
end
225226

226227
def test_render_with_cache_enable
227-
ActionController::Base.cache_store.clear
228-
get :render_object_with_cache_enabled
229-
230228
expected = {
231229
id: 1,
232230
title: 'New Post',
@@ -246,11 +244,16 @@ def test_render_with_cache_enable
246244
}
247245
}
248246

249-
assert_equal 'application/json', @response.content_type
250-
assert_equal expected.to_json, @response.body
247+
ActionController::Base.cache_store.clear
248+
Timecop.freeze(Time.now) do
249+
get :render_object_with_cache_enabled
251250

252-
get :render_changed_object_with_cache_enabled
253-
assert_not_equal expected.to_json, @response.body
251+
assert_equal 'application/json', @response.content_type
252+
assert_equal expected.to_json, @response.body
253+
254+
get :render_changed_object_with_cache_enabled
255+
assert_equal expected.to_json, @response.body
256+
end
254257

255258
ActionController::Base.cache_store.clear
256259
get :render_changed_object_with_cache_enabled
@@ -306,20 +309,23 @@ def test_render_with_fragment_except_cache_enable
306309

307310
def test_render_fragment_changed_object_with_relationship
308311
ActionController::Base.cache_store.clear
309-
get :render_fragment_changed_object_with_relationship
310-
response = JSON.parse(@response.body)
311312

312-
expected_return = {
313-
"id"=>1,
314-
"time"=>DateTime.now.to_s,
315-
"likeable" => {
313+
Timecop.freeze(Time.now) do
314+
get :render_fragment_changed_object_with_relationship
315+
response = JSON.parse(@response.body)
316+
317+
expected_return = {
316318
"id"=>1,
317-
"body"=>"ZOMG A COMMENT"
319+
"time"=>Time.now.to_s,
320+
"likeable" => {
321+
"id"=>1,
322+
"body"=>"ZOMG A COMMENT"
323+
}
318324
}
319-
}
320325

321-
assert_equal 'application/json', @response.content_type
322-
assert_equal expected_return, response
326+
assert_equal 'application/json', @response.content_type
327+
assert_equal expected_return, response
328+
end
323329
end
324330

325331
def test_cache_expiration_on_update

test/test_helper.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
require 'bundler/setup'
22

3+
require 'timecop'
34
require 'rails'
45
require 'action_controller'
56
require 'action_controller/test_case'

0 commit comments

Comments
 (0)