Skip to content

Commit 7a8827d

Browse files
committed
Parse event body
1 parent affa06f commit 7a8827d

2 files changed

Lines changed: 18 additions & 7 deletions

File tree

src/plan/parser.janet

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,15 @@
2727
:events
2828
{:main (group (any :event))
2929
:event
30-
{:main (replace (* :event-begin :text-line (? "\n")) ,event/build-event)
31-
:event-begin (* "- " (not "["))}}}}
30+
{:main (replace (* :event-begin
31+
:text-line
32+
(? "\n")
33+
:event-body
34+
(? "\n"))
35+
,event/build-event)
36+
:event-begin (* "- " (not "["))
37+
:event-body {:main (group (any :event-body-line))
38+
:event-body-line (* " " :text-line (? "\n"))}}}}}
3239
:tasks
3340
{:main (group (any :task))
3441
:task
@@ -78,7 +85,7 @@
7885
plan
7986
{:serialize-empty-inbox serialize-empty-inbox})]
8087
(if (= (lines-count parsed-plan-string) (lines-count plan-string))
81-
{:plan plan}
88+
{:plan plan :errors []}
8289
{:errors [(string "Plan can not be parsed: last parsed line is line "
8390
(lines-count parsed-plan-string {:ignore-whitespace false}))]}))
8491
{:errors ["Plan can not be parsed"]}))

test/plan/parser_test.janet

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
- [x] #work - Review open pull requests
2929
- [x] #work - Fix the flaky test
3030
```)
31-
(def plan ((parse plan-string) :plan))
31+
(def parse-result (parse plan-string))
32+
(def plan (parse-result :plan))
3233
(def inbox (plan :inbox))
3334
(def day-1 ((plan :days) 0))
3435
(def day-2 ((plan :days) 1))
@@ -51,7 +52,9 @@
5152
(test (not (task :done)) true)
5253
(test (d/equal? (d/date 2020 7 30) (task :missed-on)) true))
5354
(test (= (d/date 2020 7 31) (day-2 :date)) true)
54-
(test (= {:title "Talked to Mike & Molly"} ((day-2 :events) 0)) true)
55+
(let [event ((day-2 :events) 0)]
56+
(test (event :title) "Talked to Mike & Molly")
57+
(test (empty? (event :body)) true))
5558
(let [task ((day-2 :tasks) 0)]
5659
(test (task :title) "#work - Review open pull requests")
5760
(test (task :done) true))
@@ -193,14 +196,15 @@
193196
- They moved to a new apartment
194197
- [x] Fix the lamp
195198
```)
196-
(def plan ((parse plan-string) :plan))
199+
(def parse-result (parse plan-string))
200+
(def plan (parse-result :plan))
197201
(test (length (plan :days)) 1)
198202
(let [day ((plan :days) 0)
199203
event ((day :events) 0)
200204
task ((day :tasks) 0)]
205+
(test (= (d/date 2020 7 30) (day :date)) true)
201206
(test (event :title) "Talked to Mike & Molly")
202207
(test ((event :body) 0) "- They moved to a new apartment")
203-
(test (= (d/date 2020 7 30) (day :date)) true)
204208
(test (task :title) "Fix the lamp")
205209
(test (task :done) true)))
206210

0 commit comments

Comments
 (0)