-
Notifications
You must be signed in to change notification settings - Fork 13
/
todo_or_die_test.rb
58 lines (44 loc) · 1.31 KB
/
todo_or_die_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
require "test_helper"
class TodoOrDieTest < UnitTest
def test_not_due_todo_does_nothing
Timecop.travel(Date.civil(2200, 2, 3))
TodoOrDie("Fix stuff", by: Date.civil(2200, 2, 4))
# 🦗 sounds
end
def test_due_todo_blows_up
Timecop.travel(Date.civil(2200, 2, 4))
error = assert_raises(TodoOrDie::OverdueTodo) {
TodoOrDie("Fix stuff", by: Date.civil(2200, 2, 4))
}
assert_equal <<~MSG, error.message
TODO: "Fix stuff" came due on 2200-02-04. Do it!
MSG
end
def test_config_custom_explosion
Timecop.travel(Date.civil(2200, 2, 5))
actual_message, actual_by = nil
TodoOrDie.config(
die: ->(message, by) {
actual_message = message
actual_by = by
"pants"
}
)
some_time = Time.parse("2200-02-04")
result = TodoOrDie("kaka", by: some_time)
assert_equal result, "pants"
assert_equal actual_message, "kaka"
assert_same actual_by, some_time
end
def test_config_and_reset
some_lambda = -> {}
TodoOrDie.config(die: some_lambda)
assert_equal TodoOrDie.config[:die], some_lambda
assert_equal TodoOrDie.config({})[:die], some_lambda
TodoOrDie.reset
assert_equal TodoOrDie.config[:die], TodoOrDie::DEFAULT_CONFIG[:die]
end
def test_has_version
assert TodoOrDie::VERSION
end
end