mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
replace custom Time stubbing with travel
and travel_to
.
This commit is contained in:
parent
68aebd4895
commit
e2fbec96d4
1 changed files with 7 additions and 37 deletions
|
@ -3,42 +3,11 @@ require "cases/helper"
|
|||
class Mixin < ActiveRecord::Base
|
||||
end
|
||||
|
||||
# Let us control what Time.now returns for the TouchTest suite
|
||||
class Time
|
||||
@@forced_now_time = nil
|
||||
cattr_accessor :forced_now_time
|
||||
|
||||
class << self
|
||||
def now_with_forcing
|
||||
if @@forced_now_time
|
||||
@@forced_now_time
|
||||
else
|
||||
now_without_forcing
|
||||
end
|
||||
end
|
||||
alias_method_chain :now, :forcing
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class TouchTest < ActiveRecord::TestCase
|
||||
fixtures :mixins
|
||||
|
||||
def setup
|
||||
Time.forced_now_time = Time.now
|
||||
end
|
||||
|
||||
def teardown
|
||||
Time.forced_now_time = nil
|
||||
end
|
||||
|
||||
def test_time_mocking
|
||||
five_minutes_ago = 5.minutes.ago
|
||||
Time.forced_now_time = five_minutes_ago
|
||||
assert_equal five_minutes_ago, Time.now
|
||||
|
||||
Time.forced_now_time = nil
|
||||
assert_not_equal five_minutes_ago, Time.now
|
||||
travel_to Time.now
|
||||
end
|
||||
|
||||
def test_update
|
||||
|
@ -68,12 +37,13 @@ class TouchTest < ActiveRecord::TestCase
|
|||
|
||||
old_updated_at = stamped.updated_at
|
||||
|
||||
Time.forced_now_time = 5.minutes.from_now
|
||||
stamped.lft_will_change!
|
||||
stamped.save
|
||||
travel 5.minutes do
|
||||
stamped.lft_will_change!
|
||||
stamped.save
|
||||
|
||||
assert_equal Time.now, stamped.updated_at
|
||||
assert_equal old_updated_at, stamped.created_at
|
||||
assert_equal Time.now, stamped.updated_at
|
||||
assert_equal old_updated_at, stamped.created_at
|
||||
end
|
||||
end
|
||||
|
||||
def test_create_turned_off
|
||||
|
|
Loading…
Reference in a new issue