diff --git a/Cask b/Cask index a78c6fa..7afe920 100644 --- a/Cask +++ b/Cask @@ -2,7 +2,9 @@ (files "org-ql.el" "org-ql-agenda.el") +(source gnu) (source melpa) (development - (depends-on "buttercup")) + (depends-on "buttercup") + (depends-on "xr")) diff --git a/tests/test-org-ql.el b/tests/test-org-ql.el index 80663ec..e2e3110 100644 --- a/tests/test-org-ql.el +++ b/tests/test-org-ql.el @@ -35,16 +35,30 @@ "FIXME: docstring" (interactive) (if-let* ((sexp (elisp--preceding-sexp)) - (correct-sexp-p (eq (car sexp) 'org-ql)) - (value (eval sexp)) - (prefix (if (and value (listp value)) - "'" - ""))) - (insert " :to-equal " - prefix - (format "%S" value)) + (correct-sexp-p (pcase (car sexp) + ('org-ql 'org-ql) + ('org-ql--query-preamble 'query-preamble) + (_ nil))) + (result (pcase (car sexp) + ('org-ql (org-ql-test--format-result--ql sexp)) + ('org-ql--query-preamble (org-ql-test--format-result--query-preamble sexp)) + (_ nil)))) + (insert " :to-equal " result) (user-error "Point must be after an `org-ql' form"))) +(defun org-ql-test--format-result--ql (sexp) + (let* ((value (eval sexp)) + (prefix (if (and value (listp value)) + "'" + ""))) + (format "%S" value))) + +(defun org-ql-test--format-result--query-preamble (sexp) + (-let* (((query preamble) (eval sexp)) + (preamble (when preamble + (xr preamble 'brief)))) + (format "`(%S ,(rx %S))" query preamble))) + (defun org-ql-test-show-result () "Show `org-ql-agenda' for `org-ql' form." (interactive)