I have two projects running Rails 4.2 and using travel_to from ActiveSupport::Testing::TimeHelpers.
In one project everything is working perfectly. But in the second one, my specs are running with the current date/time instead of using travel_to. Here is one example:
new(year, month=nil, day=nil, hour=nil, min=nil, sec=nil, utc_offset=nil) →
time
Returns a Time object.
It is initialized to the current system time if no argument is given.
a = Time.new #=> 2007-11-19 07:50:02 -0600
Yes, you are right, and since that document also says that Time.now is
an alias for this, and the docs for travel_to states that Time.now
should get the travel_to time (have you tried Time.now in the block?)
then it looks like you have found a bug.
From the doc for `travel_to` --
Changes current time to the given time by stubbing Time.now and
Date.today to return the time or date passed into this method.
If you change your test to `expect(Time.now).to ...` it will pass.
new(year, month=nil, day=nil, hour=nil, min=nil, sec=nil, utc_offset=nil) →
time
Returns a Time object.
It is initialized to the current system time if no argument is given.
a = Time.new #=> 2007-11-19 07:50:02 -0600
Yes, you are right, and since that document also says that Time.now is
an alias for this, and the docs for travel_to states that Time.now
should get the travel_to time (have you tried Time.now in the block?)
then it looks like you have found a bug.
I think I have to retract this, since the docs for travel_to state
that Time.now and Time.current are stubbed then it means that Time.now
is no longer an alias for Time.new(), so there is no guarantee that
Time.new() will respect travel_to.