]> code.delx.au - gnu-emacs-elpa/blob - ivy-test.el
ivy-test.el: Add testing
[gnu-emacs-elpa] / ivy-test.el
1 (require 'ert)
2
3 (defvar ivy-expr nil
4 "Holds a test expression to evaluate with `ivy-eval'.")
5
6 (defvar ivy-result nil
7 "Holds the eval result of `ivy-expr' by `ivy-eval'.")
8
9 (defun ivy-eval ()
10 "Evaluate `ivy-expr'."
11 (interactive)
12 (setq ivy-result (eval ivy-expr)))
13
14 (global-set-key (kbd "C-c e") 'ivy-eval)
15
16 (defun ivy-with (expr keys)
17 "Evaluate EXPR followed by KEYS."
18 (let ((ivy-expr expr))
19 (execute-kbd-macro
20 (vconcat (kbd "C-c e")
21 (kbd keys)))
22 ivy-result))
23
24 (ert-deftest ivy-read ()
25 (should (equal
26 (ivy-read "pattern: " nil)
27 nil))
28 (should (equal
29 (ivy-read "pattern: " '("42"))
30 "42"))
31 (should (equal
32 (ivy-with '(ivy-read "pattern: " '("blue" "yellow"))
33 "C-m")
34 "blue"))
35 (should (equal
36 (ivy-with '(ivy-read "pattern: " '("blue" "yellow"))
37 "y C-m")
38 "yellow"))
39 (should (equal
40 (ivy-with '(ivy-read "pattern: " '("blue" "yellow"))
41 "y DEL b C-m")
42 "blue"))
43 (should (equal
44 (ivy-with '(ivy-read "pattern: " '("blue" "yellow"))
45 "z C-m")
46 nil)))