Skip to content

Commit 9bfbd72

Browse files
committed
Support scheduling task every month on specific date
1 parent a9d1b48 commit 9bfbd72

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

src/commands/schedule_tasks.janet

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"every month" (= (date :day) 1)
2828
"every 3 months" (and (= (date :day) 1)
2929
(number? (index-of (date :month) [1 4 7 10])))
30+
(string "every month on " (date :day)) true
3031
(string "every year on " (remove-year formatted-date)) true
3132
(string "on " formatted-date) true
3233
"every last day" (date/last-day-of-month? date)

test/commands/schedule_tasks_test.janet

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@
4949
(test (not (scheduled-for? task (d/date 2022 1 29))) true) # Saturday
5050
(test (not (scheduled-for? task (d/date 2022 1 30))) true)) # Sunday
5151

52+
(deftest "every month on some date"
53+
(def task (task/build-scheduled-task 42 "Review logs" "every month on 15"))
54+
(test (scheduled-for? task (d/date 2022 1 15)) true)
55+
(test (scheduled-for? task (d/date 2022 2 15)) true)
56+
(test (scheduled-for? task (d/date 2022 10 15)) true)
57+
(test (not (scheduled-for? task (d/date 2022 1 14))) true)
58+
(test (not (scheduled-for? task (d/date 2022 1 16))) true))
59+
5260
(deftest "every year on some date"
5361
(def task (task/build-scheduled-task 42 "Review logs" "every year on 01-27"))
5462
(test (scheduled-for? task (d/date 2022 1 27)) true)

0 commit comments

Comments
 (0)