2014-05-16 18:03:13 -04:00
|
|
|
require 'test_helper'
|
2013-09-25 15:08:25 +02:00
|
|
|
|
|
|
|
|
module Todos
|
|
|
|
|
class DoneTodosTest < ActiveSupport::TestCase
|
|
|
|
|
|
|
|
|
|
def test_completed_period
|
2014-05-16 13:24:40 -04:00
|
|
|
travel_to Time.zone.local(2013,1,23,12,00,00) do # wednesday at 12:00;
|
2013-09-25 15:08:25 +02:00
|
|
|
assert_equal "today", DoneTodos.completed_period(Time.zone.local(2013,1,23,9,00)) # today at 9:00
|
|
|
|
|
assert_equal "rest_of_week", DoneTodos.completed_period(Time.zone.local(2013,1,21)) # monday this week
|
|
|
|
|
assert_equal "rest_of_month", DoneTodos.completed_period(Time.zone.local(2013,1,8)) # tuestday in first week of jan
|
|
|
|
|
|
|
|
|
|
assert_nil DoneTodos.completed_period(nil)
|
|
|
|
|
assert_nil DoneTodos.completed_period(Time.zone.local(2012,12,1)) # older than this month
|
|
|
|
|
|
|
|
|
|
assert_equal "today", DoneTodos.completed_period(Time.zone.local(2013,12,1)) # date in future -> act as if today
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def test_done_today
|
|
|
|
|
todos = users(:admin_user).todos
|
|
|
|
|
assert 0, DoneTodos.done_today(todos, {}).count
|
|
|
|
|
|
|
|
|
|
t = users(:admin_user).todos.active.first
|
|
|
|
|
t.complete!
|
|
|
|
|
|
|
|
|
|
assert 0, DoneTodos.done_today(todos.reload, {}).count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def test_done_rest_of_week
|
|
|
|
|
todos = users(:admin_user).todos
|
|
|
|
|
|
|
|
|
|
# When I mark a todo complete on jan 1
|
2014-05-16 13:24:40 -04:00
|
|
|
travel_to Time.zone.local(2013,1,1,0,0) do
|
2013-09-25 15:08:25 +02:00
|
|
|
t = users(:admin_user).todos.active.first
|
|
|
|
|
t.complete!
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# Then I should be in rest_of_week on jan 2
|
2014-05-16 13:24:40 -04:00
|
|
|
travel_to Time.zone.local(2013,1,2,0,0) do
|
2013-09-25 15:08:25 +02:00
|
|
|
assert 0, DoneTodos.done_today(todos.reload, {}).count
|
|
|
|
|
assert 1, DoneTodos.done_rest_of_week(todos.reload, {}).count
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def test_done_rest_of_month
|
|
|
|
|
todos = users(:admin_user).todos
|
|
|
|
|
|
|
|
|
|
# When I mark a todo complete on jan 1
|
2014-05-16 13:24:40 -04:00
|
|
|
travel_to Time.zone.local(2013,1,1,0,0) do
|
2013-09-25 15:08:25 +02:00
|
|
|
t = users(:admin_user).todos.active.first
|
|
|
|
|
t.complete!
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# Then I should be in rest_of_month on jan 21
|
2014-05-16 13:24:40 -04:00
|
|
|
travel_to Time.zone.local(2013,1,21,0,0) do
|
2013-09-25 15:08:25 +02:00
|
|
|
assert 0, DoneTodos.done_today(todos.reload, {}).count
|
|
|
|
|
assert 0, DoneTodos.done_rest_of_week(todos.reload, {}).count
|
|
|
|
|
assert 1, DoneTodos.done_rest_of_month(todos.reload, {}).count
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|