Skip to content

Commit 4351aaf

Browse files
committed
Add tests
1 parent 6955bc1 commit 4351aaf

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

tests/test-org-ql.el

+75
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,11 @@ RESULTS should be a list of strings as returned by
252252
(expect (org-ql--normalize-query '(and (todo "TODO")
253253
(or "string1" "string2")))
254254
:to-equal '(and (todo "TODO") (or (regexp "string1") (regexp "string2"))))
255+
(expect (org-ql--normalize-query '(or (todo "TODO")
256+
(or "string1" "string2")))
257+
:to-equal '(or (todo "TODO") (or (regexp "string1") (regexp "string2"))))
258+
(expect (org-ql--normalize-query '(not (or "string1" "string2")))
259+
:to-equal '(not (or (regexp "string1") (regexp "string2"))))
255260
(expect (org-ql--normalize-query '(when (todo "TODO")
256261
(or "string1" "string2")))
257262
:to-equal '(when (todo "TODO") (or (regexp "string1") (regexp "string2"))))
@@ -278,6 +283,76 @@ RESULTS should be a list of strings as returned by
278283

279284
;; TODO: Other predicates.
280285

286+
(describe "(and)"
287+
(it "all clauses have preambles"
288+
(expect (org-ql--query-preamble '(and (regexp "a") (regexp "b")))
289+
:to-equal (list :query '(and (regexp "a") (regexp "b"))
290+
:preamble "a"
291+
:preamble-case-fold t)))
292+
(it "some clauses miss preambles"
293+
(expect (org-ql--query-preamble '(and (regexp "a") (+ 1 1)))
294+
:to-equal (list :query '(and (regexp "a") (+ 1 1))
295+
:preamble "a"
296+
:preamble-case-fold t)))
297+
(it "all clauses don't have preambles"
298+
(expect (org-ql--query-preamble '(and t (+ 1 1)))
299+
:to-equal (list :query '(and t (+ 1 1))
300+
:preamble nil
301+
:preamble-case-fold nil))))
302+
303+
(describe "(or)"
304+
(it "all clauses have preambles"
305+
(expect (org-ql--query-preamble '(or (regexp "a") (regexp "b")))
306+
:to-equal (list :query '(or (regexp "a") (regexp "b"))
307+
:preamble (rx-to-string `(or (regexp "a") (regexp "b")))
308+
:preamble-case-fold t)))
309+
(it "some clauses miss preambles"
310+
(expect (org-ql--query-preamble '(or (regexp "a") (+ 1 1)))
311+
:to-equal (list :query '(or (regexp "a") (+ 1 1))
312+
:preamble nil
313+
:preamble-case-fold t)))
314+
(it "all clauses don't have preambles"
315+
(expect (org-ql--query-preamble '(or t (+ 1 1)))
316+
:to-equal (list :query '(or t (+ 1 1))
317+
:preamble nil
318+
:preamble-case-fold t))))
319+
320+
(describe "(when)"
321+
(it "simple query"
322+
(expect (org-ql--query-preamble '(when (regexp "a") (regexp "b")))
323+
:to-equal (list :query '(when (regexp "a") (regexp "b"))
324+
:preamble "a"
325+
:preamble-case-fold t)))
326+
(it "multiple clauses after when"
327+
(expect (org-ql--query-preamble '(when (regexp "a") (+ 1 1) (regexp "b")))
328+
:to-equal (list :query '(when (regexp "a") (+ 1 1) (regexp "b"))
329+
:preamble "a"
330+
:preamble-case-fold t)))
331+
(it "no preambles in clauses"
332+
(expect (org-ql--query-preamble '(when t (+ 1 1)))
333+
:to-equal (list :query '(when t (+ 1 1))
334+
:preamble nil
335+
:preamble-case-fold nil))))
336+
337+
(describe "(unless)"
338+
(it "simple query"
339+
(expect (org-ql--query-preamble '(unless (regexp "a") (regexp "b")))
340+
:to-equal (list :query '(unless (regexp "a") (regexp "b"))
341+
:preamble "b"
342+
:preamble-case-fold t)))
343+
(it "no predicate in last clause"
344+
(expect (org-ql--query-preamble '(unless (regexp "a") (regexp "b") (+ 1 1)))
345+
:to-equal (list :query '(unless (regexp "a") (regexp "b") (+ 1 1))
346+
:preamble nil
347+
:preamble-case-fold nil))))
348+
349+
(describe "(not)"
350+
(it "simple query"
351+
(expect (org-ql--query-preamble '(not (regexp "a")))
352+
:to-equal (list :query '(not (regexp "a"))
353+
:preamble nil
354+
:preamble-case-fold nil))))
355+
281356
(describe "(clocked)"
282357
(it "without arguments"
283358
(expect (org-ql--query-preamble '(clocked))

0 commit comments

Comments
 (0)