58 lines
2.1 KiB
EmacsLisp
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
|