@@ -174,6 +174,20 @@ def test_time_helper_travel_to_with_string_for_time_zone
174
174
end
175
175
end
176
176
177
+ def test_time_helper_travel_to_with_string_and_milliseconds
178
+ with_env_tz "US/Eastern" do
179
+ with_tz_default ActiveSupport ::TimeZone [ "UTC" ] do
180
+ Time . stub ( :now , Time . now ) do
181
+ expected_time = Time . new ( 2004 , 11 , 24 , 1 , 4 , 44 )
182
+
183
+ travel_to "2004-11-24T01:04:44.123-05:00" do
184
+ assert_equal expected_time , Time . zone . now
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+
177
191
def test_time_helper_travel_to_with_separate_class
178
192
travel_object = TravelClass . new
179
193
date1 = Date . new ( 2004 , 11 , 24 )
@@ -330,6 +344,93 @@ def test_time_helper_with_usec_true
330
344
end
331
345
end
332
346
347
+ def test_time_helper_travel_to_with_datetime_and_usec
348
+ with_env_tz "US/Eastern" do
349
+ with_tz_default ActiveSupport ::TimeZone [ "UTC" ] do
350
+ Time . stub ( :now , Time . now ) do
351
+ duration_usec = 0.1 . seconds
352
+ traveled_time = DateTime . iso8601 ( "2004-11-24T01:04:44.000-05:00" ) + duration_usec
353
+ expected_time = Time . new ( 2004 , 11 , 24 , 1 , 4 , 44 )
354
+
355
+ assert_nothing_raised do
356
+ travel_to traveled_time
357
+
358
+ assert_equal expected_time , Time . zone . now
359
+
360
+ travel_back
361
+ end
362
+ ensure
363
+ travel_back
364
+ end
365
+ end
366
+ end
367
+ end
368
+
369
+ def test_time_helper_travel_to_with_datetime_and_usec_true
370
+ with_env_tz "US/Eastern" do
371
+ with_tz_default ActiveSupport ::TimeZone [ "UTC" ] do
372
+ Time . stub ( :now , Time . now ) do
373
+ duration_usec = 0.1 . seconds
374
+ traveled_time = DateTime . iso8601 ( "2004-11-24T01:04:44.000-05:00" ) + duration_usec
375
+ expected_time = Time . new ( 2004 , 11 , 24 , 1 , 4 , 44 ) + duration_usec
376
+
377
+ assert_nothing_raised do
378
+ travel_to traveled_time , with_usec : true
379
+
380
+ assert_equal expected_time , Time . now
381
+
382
+ travel_back
383
+ end
384
+ ensure
385
+ travel_back
386
+ end
387
+ end
388
+ end
389
+ end
390
+
391
+ def test_time_helper_travel_to_with_string_and_usec
392
+ with_tz_default ActiveSupport ::TimeZone [ "UTC" ] do
393
+ Time . stub ( :now , Time . now ) do
394
+ duration_usec = 0.1 . seconds
395
+ traveled_time = Time . new ( 2004 , 11 , 24 , 1 , 4 , 44 ) + duration_usec
396
+ expected_time = Time . new ( 2004 , 11 , 24 , 1 , 4 , 44 )
397
+
398
+ assert_nothing_raised do
399
+ travel_to traveled_time . iso8601 ( 3 )
400
+
401
+ assert_equal expected_time , Time . now
402
+
403
+ travel_back
404
+ end
405
+ ensure
406
+ travel_back
407
+ end
408
+ end
409
+ end
410
+
411
+ def test_time_helper_travel_to_with_string_and_usec_true
412
+ with_tz_default ActiveSupport ::TimeZone [ "UTC" ] do
413
+ Time . stub ( :now , Time . now ) do
414
+ duration_usec = 0.1 . seconds
415
+ expected_time = Time . new ( 2004 , 11 , 24 , 1 , 4 , 44 ) + duration_usec
416
+
417
+ assert_nothing_raised do
418
+ travel_to expected_time . iso8601 ( 3 ) , with_usec : true
419
+
420
+ assert_equal expected_time . to_f , Time . now . to_f
421
+
422
+ travel 0.5 , with_usec : true
423
+
424
+ assert_equal ( ( expected_time + 0.5 ) . to_f , Time . now . to_f )
425
+
426
+ travel_back
427
+ end
428
+ ensure
429
+ travel_back
430
+ end
431
+ end
432
+ end
433
+
333
434
def test_time_helper_freeze_time_with_usec_true
334
435
# repeatedly test in case Time.now happened to actually be 0 usec
335
436
checks = 9 . times . map do
0 commit comments