mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 23:30:12 +01:00
58 lines
1.6 KiB
Ruby
58 lines
1.6 KiB
Ruby
require_relative '../../test_helper'
|
|
|
|
module Todos
|
|
class CalendarTest < ActiveSupport::TestCase
|
|
|
|
def setup
|
|
@calendar = Calendar.new(users(:admin_user))
|
|
Todo.destroy_all
|
|
end
|
|
|
|
def create_todo(due_date)
|
|
Todo.create due: due_date,
|
|
user: users(:admin_user),
|
|
description: 'Test Todo',
|
|
context: Context.first
|
|
end
|
|
|
|
def test_due_today
|
|
due_today = create_todo(Time.zone.now)
|
|
|
|
assert_equal [due_today], @calendar.due_today
|
|
end
|
|
|
|
def test_due_this_week
|
|
due_this_week = create_todo(Time.zone.now.end_of_week)
|
|
assert_equal [due_this_week], @calendar.due_this_week
|
|
end
|
|
|
|
def test_due_next_week
|
|
due_next_week = create_todo(1.week.from_now.beginning_of_day)
|
|
|
|
assert_equal [due_next_week], @calendar.due_next_week
|
|
end
|
|
|
|
def test_due_this_month_at_start_month
|
|
# should return 1 todo
|
|
travel_to Time.zone.local(2013,9,1) do
|
|
due_this_month = create_todo(Time.zone.now.end_of_month)
|
|
assert_equal [due_this_month], @calendar.due_this_month
|
|
end
|
|
end
|
|
|
|
def test_due_this_month_at_end_month
|
|
# the todo is due next week and is thus left out for todos due rest
|
|
# of month (i.e. after next week, but in this month)
|
|
travel_to Time.zone.local(2013,9,23) do
|
|
due_this_month = create_todo(Time.zone.now.end_of_month)
|
|
assert_equal 0, @calendar.due_this_month.size
|
|
end
|
|
end
|
|
|
|
def test_due_after_this_month
|
|
due_after_this_month = create_todo(1.month.from_now)
|
|
assert_equal [due_after_this_month], @calendar.due_after_this_month
|
|
end
|
|
end
|
|
end
|
|
|