diff --git a/test/datetime_test.rb b/test/datetime_test.rb index ed23e5a..30945e3 100644 --- a/test/datetime_test.rb +++ b/test/datetime_test.rb @@ -66,41 +66,153 @@ def test_less_equals refute_includes Product.search("created_at <= 2014-05-01"), product end - def test_hours_ago + def test_hours_ago_less + product = create(:product, created_at: 5.hours.ago) + + assert_includes Product.search("created_at < '4 hours ago'"), product + refute_includes Product.search("created_at < '6 hours ago'"), product + end + + def test_hours_ago_less + product = create(:product, created_at: 5.hours.ago) + + assert_includes Product.search("created_at < '4 hours ago'"), product + refute_includes Product.search("created_at < '6 hours ago'"), product + end + + def test_hours_ago_less_equals product = create(:product, created_at: 5.hours.ago) assert_includes Product.search("created_at <= '4 hours ago'"), product refute_includes Product.search("created_at <= '6 hours ago'"), product end - def test_days_ago + def test_hours_ago_greater + product = create(:product, created_at: 5.hours.ago) + + refute_includes Product.search("created_at > '4 hours ago'"), product + assert_includes Product.search("created_at > '6 hours ago'"), product + end + + def test_hours_ago_greater_equals + product = create(:product, created_at: 5.hours.ago) + + refute_includes Product.search("created_at >= '4 hours ago'"), product + assert_includes Product.search("created_at >= '6 hours ago'"), product + end + + def test_days_ago_less + product = create(:product, created_at: 2.days.ago) + + assert_includes Product.search("created_at < '1 day ago'"), product + refute_includes Product.search("created_at < '3 days ago'"), product + end + + def test_days_ago_less_equals product = create(:product, created_at: 2.days.ago) assert_includes Product.search("created_at <= '1 day ago'"), product refute_includes Product.search("created_at <= '3 days ago'"), product end - def test_weeks_ago + def test_days_ago_greater + product = create(:product, created_at: 2.days.ago) + + refute_includes Product.search("created_at > '1 day ago'"), product + assert_includes Product.search("created_at > '3 days ago'"), product + end + + def test_days_ago_greater_equals + product = create(:product, created_at: 2.days.ago) + + refute_includes Product.search("created_at >= '1 day ago'"), product + assert_includes Product.search("created_at >= '3 days ago'"), product + end + + def test_weeks_ago_less + product = create(:product, created_at: 2.weeks.ago) + + assert_includes Product.search("created_at < '1 weeks ago'"), product + refute_includes Product.search("created_at < '3 weeks ago'"), product + end + + def test_weeks_ago_less_equals product = create(:product, created_at: 2.weeks.ago) assert_includes Product.search("created_at <= '1 weeks ago'"), product refute_includes Product.search("created_at <= '3 weeks ago'"), product end - def test_months_ago + def test_weeks_ago_greater + product = create(:product, created_at: 2.weeks.ago) + + refute_includes Product.search("created_at > '1 weeks ago'"), product + assert_includes Product.search("created_at > '3 weeks ago'"), product + end + + def test_weeks_ago_greater_equals + product = create(:product, created_at: 2.weeks.ago) + + refute_includes Product.search("created_at >= '1 weeks ago'"), product + assert_includes Product.search("created_at >= '3 weeks ago'"), product + end + + def test_months_ago_less + product = create(:product, created_at: 2.months.ago) + + assert_includes Product.search("created_at < '1 months ago'"), product + refute_includes Product.search("created_at < '3 months ago'"), product + end + + def test_months_ago_less_equals product = create(:product, created_at: 2.months.ago) assert_includes Product.search("created_at <= '1 months ago'"), product refute_includes Product.search("created_at <= '3 months ago'"), product end - def test_years_ago + def test_months_ago_greater + product = create(:product, created_at: 2.months.ago) + + refute_includes Product.search("created_at > '1 months ago'"), product + assert_includes Product.search("created_at > '3 months ago'"), product + end + + def test_months_ago_greater_equals + product = create(:product, created_at: 2.months.ago) + + refute_includes Product.search("created_at >= '1 months ago'"), product + assert_includes Product.search("created_at >= '3 months ago'"), product + end + + def test_years_ago_less + product = create(:product, created_at: 2.years.ago) + + assert_includes Product.search("created_at < '1 years ago'"), product + refute_includes Product.search("created_at < '3 years ago'"), product + end + + def test_years_ago_less_equals product = create(:product, created_at: 2.years.ago) assert_includes Product.search("created_at <= '1 years ago'"), product refute_includes Product.search("created_at <= '3 years ago'"), product end + def test_years_ago_greater + product = create(:product, created_at: 2.years.ago) + + refute_includes Product.search("created_at > '1 years ago'"), product + assert_includes Product.search("created_at > '3 years ago'"), product + end + + def test_years_ago_greater_equals + product = create(:product, created_at: 2.years.ago) + + refute_includes Product.search("created_at >= '1 years ago'"), product + assert_includes Product.search("created_at >= '3 years ago'"), product + end + if DATABASE == "postgres" && ActiveRecord::VERSION::MAJOR >= 7 def test_timestamp_with_zone product = create(:product, timestamp_with_zone: Time.parse("2014-05-01 12:30:30 CEST"))