branch: master commit 602ad6d1951afa6db282ecbd33df8e90ff22c579 Author: Ian D <du...@gnu.org> Commit: Ian D <du...@gnu.org>
Added tests for org-bat-parse-form * org-bat-tests.el (org-bat-parse-form-no-arguments): (org-bat-parse-form-no-arguments-modifier): (org-bat-parse-form-single-argument): (org-bat-parse-form-string-argument): New tests. --- org-bat-tests.el | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/org-bat-tests.el b/org-bat-tests.el new file mode 100644 index 0000000..4a1e32f --- /dev/null +++ b/org-bat-tests.el @@ -0,0 +1,64 @@ +;;; org-bat-tests.el --- Tests for org-bat + +;; Author: Ian Dunn + +;;; Commentary: + +;;; Code: + +(require 'org-bat) +(require 'ert) + +(ert-deftest org-bat-parse-form-no-arguments () + (let* ((input-string "test-string") + (parsed (org-bat-parse-form input-string))) + (should parsed) + (should (= (length parsed) 4)) + (pcase-let* ((`(,token ,args ,modifier ,pos) parsed)) + (should (eq token 'test-string)) + (should (not args)) + (should (not modifier)) + (should (= pos 11))))) + +(ert-deftest org-bat-parse-form-no-arguments-modifier () + (let* ((input-string "!test-string") + (parsed (org-bat-parse-form input-string))) + (should parsed) + (should (= (length parsed) 4)) + (pcase-let* ((`(,token ,args ,modifier ,pos) parsed)) + (should (eq token 'test-string)) + (should (not args)) + (should (eq modifier '!)) + (should (= pos 12))))) + +(ert-deftest org-bat-parse-form-single-argument () + (let* ((input-string "test-string(abc)") + (parsed (org-bat-parse-form input-string))) + (should parsed) + (should (= (length parsed) 4)) + (pcase-let* ((`(,token ,args ,modifier ,pos) parsed)) + (should (eq token 'test-string)) + (should (= (length args) 1)) + (should (stringp (nth 0 args))) + (should (string-equal (nth 0 args) "abc")) + (should (not modifier)) + (should (= pos (length input-string)))))) + +(ert-deftest org-bat-parse-form-string-argument () + (let* ((input-string "test-string(abc,\"def (ghi)\")") + (parsed (org-bat-parse-form input-string))) + (should parsed) + (should (= (length parsed) 4)) + (pcase-let* ((`(,token ,args ,modifier ,pos) parsed)) + (should (eq token 'test-string)) + (should (= (length args) 2)) + (should (stringp (nth 0 args))) + (should (string-equal (nth 0 args) "abc")) + (should (stringp (nth 1 args))) + (should (string-equal (nth 1 args) "def (ghi)")) + (should (not modifier)) + (should (= pos (length input-string)))))) + +(provide 'org-bat-tests) + +;;; org-bat-tests.el ends here