Skip to content

Commit f7f8e81

Browse files
committed
Add test cases.
Close #37, as all tests are passing on the latest version.
1 parent 1d1be17 commit f7f8e81

1 file changed

Lines changed: 139 additions & 0 deletions

File tree

test/recurrence/issue_37_test.rb

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# frozen_string_literal: true
2+
3+
require "test_helper"
4+
5+
class Issue37Test < Minitest::Test
6+
def recurrence
7+
Recurrence.new(
8+
every: :week,
9+
on: %i[monday tuesday wednesday thursday],
10+
starts: "2021-10-01",
11+
until: "2021-10-10"
12+
)
13+
end
14+
15+
test "events without start_date, end_date" do
16+
r = recurrence
17+
18+
assert_equal \
19+
[
20+
Date.new(2021, 10, 4),
21+
Date.new(2021, 10, 5),
22+
Date.new(2021, 10, 6),
23+
Date.new(2021, 10, 7)
24+
],
25+
r.events
26+
27+
assert_equal \
28+
[
29+
Date.new(2021, 10, 4),
30+
Date.new(2021, 10, 5),
31+
Date.new(2021, 10, 6),
32+
Date.new(2021, 10, 7)
33+
],
34+
r.events
35+
end
36+
37+
test "events with start_date, end_date within actual end_date" do
38+
r = recurrence
39+
40+
assert_equal \
41+
[Date.new(2021, 10, 4), Date.new(2021, 10, 5), Date.new(2021, 10, 6)],
42+
r.events(
43+
starts: "2021-10-04",
44+
until: "2021-10-06"
45+
)
46+
assert_equal r.events(
47+
starts: "2021-10-04",
48+
until: "2021-10-06"
49+
), [Date.new(2021, 10, 4), Date.new(2021, 10, 5), Date.new(2021, 10, 6)]
50+
end
51+
52+
test "events with start_date, end_date as actual end_date" do
53+
r = recurrence
54+
55+
assert_equal \
56+
[
57+
Date.new(2021, 10, 4),
58+
Date.new(2021, 10, 5),
59+
Date.new(2021, 10, 6),
60+
Date.new(2021, 10, 7)
61+
],
62+
r.events(starts: "2021-10-04", until: "2021-10-10")
63+
64+
assert_equal \
65+
[
66+
Date.new(2021, 10, 4),
67+
Date.new(2021, 10, 5),
68+
Date.new(2021, 10, 6),
69+
Date.new(2021, 10, 7)
70+
],
71+
r.events(starts: "2021-10-04", until: "2021-10-10")
72+
end
73+
74+
test "events with start_date, end_date as actual end_date (using events!)" do
75+
r = recurrence
76+
77+
assert_equal \
78+
[
79+
Date.new(2021, 10, 4),
80+
Date.new(2021, 10, 5),
81+
Date.new(2021, 10, 6),
82+
Date.new(2021, 10, 7)
83+
],
84+
r.events!(starts: "2021-10-04", until: "2021-10-10")
85+
86+
assert_equal \
87+
[
88+
Date.new(2021, 10, 4),
89+
Date.new(2021, 10, 5),
90+
Date.new(2021, 10, 6),
91+
Date.new(2021, 10, 7)
92+
],
93+
r.events!(starts: "2021-10-04", until: "2021-10-10")
94+
end
95+
96+
test "events with start_date, end_date outside end_date" do
97+
r = recurrence
98+
99+
assert_equal \
100+
[
101+
Date.new(2021, 10, 4),
102+
Date.new(2021, 10, 5),
103+
Date.new(2021, 10, 6),
104+
Date.new(2021, 10, 7)
105+
],
106+
r.events(starts: "2021-09-30", until: "2021-10-15")
107+
108+
assert_equal \
109+
[
110+
Date.new(2021, 10, 4),
111+
Date.new(2021, 10, 5),
112+
Date.new(2021, 10, 6),
113+
Date.new(2021, 10, 7)
114+
],
115+
r.events(starts: "2021-09-30", until: "2021-10-15")
116+
end
117+
118+
test "events with start_date, end_date outside end_date (using events!)" do
119+
r = recurrence
120+
121+
assert_equal \
122+
[
123+
Date.new(2021, 10, 4),
124+
Date.new(2021, 10, 5),
125+
Date.new(2021, 10, 6),
126+
Date.new(2021, 10, 7)
127+
],
128+
r.events!(starts: "2021-09-30", until: "2021-10-15")
129+
130+
assert_equal \
131+
[
132+
Date.new(2021, 10, 4),
133+
Date.new(2021, 10, 5),
134+
Date.new(2021, 10, 6),
135+
Date.new(2021, 10, 7)
136+
],
137+
r.events!(starts: "2021-09-30", until: "2021-10-15")
138+
end
139+
end

0 commit comments

Comments
 (0)