counsel-projectile/tests/test-counsel-projectile.el
Maciej Szlosarczyk 8aada5b29a
All checks were successful
/ Test on 28.2 (push) Successful in 3m27s
/ Test on 29.1 (push) Successful in 3m32s
/ Test on snapshot (push) Successful in 6m19s
Use with-simulated-input for tests
2024-08-18 19:02:36 +03:00

43 lines
1.6 KiB
EmacsLisp

;;; test-counsel-projectile.el --- Buttercup tests for counsel-projectile -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(require 'with-simulated-input)
(require 'counsel-projectile)
;; Example test!
(describe "counsel-projectile-switch-project with a mock"
(before-each
(spy-on 'ivy-read)
(spy-on 'projectile-project-root :and-return-value "/usr/fake-project")
(setq
projectile-known-projects '("/usr/fake-project" "~/some-project")
counsel-projectile-switch-project-action 'counsel-projectile-switch-project-action))
(it "spies on ivy-read arguments"
(counsel-projectile-switch-project)
(expect 'projectile-project-root :to-have-been-called)
(expect 'ivy-read :to-have-been-called-with
"[fake-project] Switch to project: "
'("/usr/fake-project" "~/some-project")
:preselect "/usr/fake-project"
:action counsel-projectile-switch-project-action
:require-match t
:sort nil
:caller 'counsel-projectile-switch-project)))
(describe "counsel-projectile-switch-project with the real ivy-read"
(before-each
(spy-on 'projectile-project-root :and-return-value "/usr/fake-project")
(setq
counsel-projectile-switch-project-action 'counsel-projectile-switch-project-action))
(it "signals error when project is unknown"
(expect
(with-simulated-input "/usr/fake RET"
(condition-case err
(counsel-projectile-switch-project)
(file-missing
(error-message-string err))))
:to-equal "Setting current directory: No such file or directory, /usr/fake-project")))
;;; test-counsel-projectile.el ends here