aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/duration_test.rb
diff options
context:
space:
mode:
authorNick Johnstone <ncwjohnstone@gmail.com>2017-02-22 20:45:48 +1300
committerJeremy Daer <jeremydaer@gmail.com>2017-02-26 01:18:51 -0700
commit2d84a6bc74fbe9d9b97bf7d63ec6f27418d9c3a6 (patch)
tree2ff0b32a5bc0532330d02af563eab3e9bd484461 /activesupport/test/core_ext/duration_test.rb
parent8fc71d1eb4055912f0b84956c2c4fab62d0d7793 (diff)
downloadrails-2d84a6bc74fbe9d9b97bf7d63ec6f27418d9c3a6.tar.gz
rails-2d84a6bc74fbe9d9b97bf7d63ec6f27418d9c3a6.tar.bz2
rails-2d84a6bc74fbe9d9b97bf7d63ec6f27418d9c3a6.zip
Add Duration#before and #after as aliases for #ago and #since
It's common in test cases at my job to have code like this: let(:today) { customer_start_date + 2.weeks } let(:earlier_date) { today - 5.days } With this change, we can instead write let(:today) { 2.weeks.after(customer_start_date) } let(:earlier_date) { 5.days.before(today) } Closes #27721
Diffstat (limited to 'activesupport/test/core_ext/duration_test.rb')
-rw-r--r--activesupport/test/core_ext/duration_test.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/duration_test.rb b/activesupport/test/core_ext/duration_test.rb
index 6a275d1d5b..6facb04f1f 100644
--- a/activesupport/test/core_ext/duration_test.rb
+++ b/activesupport/test/core_ext/duration_test.rb
@@ -179,6 +179,19 @@ class DurationTest < ActiveSupport::TestCase
Time.zone = nil
end
+ def test_before_and_afer
+ t = Time.local(2000)
+ assert_equal t + 1, 1.second.after(t)
+ assert_equal t - 1, 1.second.before(t)
+ end
+
+ def test_before_and_after_without_argument
+ Time.stub(:now, Time.local(2000)) do
+ assert_equal Time.now - 1.second, 1.second.before
+ assert_equal Time.now + 1.second, 1.second.after
+ end
+ end
+
def test_adding_hours_across_dst_boundary
with_env_tz "CET" do
assert_equal Time.local(2009, 3, 29, 0, 0, 0) + 24.hours, Time.local(2009, 3, 30, 1, 0, 0)