Files
fizzy/test/models/time_window_parser_test.rb

65 lines
1.5 KiB
Ruby

require "test_helper"
class TimeWindowParserTest < ActiveSupport::TestCase
setup do
@now = Time.zone.parse("2023-06-15 9am")
@parser = TimeWindowParser.new(now: @now)
end
test "parse today" do
assert_equal @now.beginning_of_day..@now.end_of_day,
@parser.parse("today")
end
test "parse yesterday" do
yesterday = @now - 1.day
assert_equal yesterday.beginning_of_day..yesterday.end_of_day,
@parser.parse("yesterday")
end
test "parse this week" do
assert_equal @now.beginning_of_week..@now.end_of_week,
@parser.parse("this week")
end
test "parse this month" do
assert_equal @now.beginning_of_month..@now.end_of_month,
@parser.parse("this month")
end
test "parse this year" do
assert_equal @now.beginning_of_year..@now.end_of_year,
@parser.parse("this year")
end
test "parse last week" do
last_week = @now - 1.week
assert_equal last_week.beginning_of_week..last_week.end_of_week,
@parser.parse("last week")
end
test "parse last month" do
last_month = @now - 1.month
assert_equal last_month.beginning_of_month..last_month.end_of_month,
@parser.parse("last month")
end
test "parse last year" do
last_year = @now - 1.year
assert_equal last_year.beginning_of_year..last_year.end_of_year,
@parser.parse("last year")
end
test "parse with unknown string returns nil" do
assert_nil @parser.parse("unknown time window")
end
test "returns nil for nil" do
assert_nil @parser.parse(nil)
end
end