Tests: Use xr to help format test results

This commit is contained in:
Adam Porter 2019-07-23 19:01:16 -05:00
parent ad6624d9ae
commit dbb94ff3b8
2 changed files with 25 additions and 9 deletions

4
Cask
View file

@ -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"))

View file

@ -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)