counsel-projectile/tests/test-counsel-projectile.el
Maciej Szlosarczyk fdf4c9da84
Some checks failed
/ Test on 28.2 (push) Failing after 3m14s
/ Test on 29.1 (push) Successful in 3m34s
/ Test on snapshot (push) Failing after 6m23s
Add tests for last function I use
2024-08-19 20:14:27 +03:00

58 lines
2.1 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")))
(describe "counsel-projectile-find-file"
(before-each
(spy-on 'ivy-read)
(spy-on 'projectile-project-root :and-return-value user-emacs-directory))
(it "finds a file"
(counsel-projectile-find-file)
(expect 'ivy-read :to-have-been-called-with
"[29.1] Find file: " nil
:matcher 'counsel-projectile--find-file-matcher
:require-match t
:sort nil
:action counsel-projectile-find-file-action
:caller 'counsel-projectile-find-file)))
;;; test-counsel-projectile.el ends here