doomemacs/core/test/core-projects.el

48 lines
1.8 KiB
EmacsLisp
Raw Normal View History

2017-12-31 11:44:51 -05:00
;; -*- no-byte-compile: t; -*-
;;; ../core/test/core-projects.el
(require 'projectile)
2017-12-31 11:44:51 -05:00
;;
;; `doom-project-p'
2017-12-31 11:44:51 -05:00
(def-test! project-p
:minor-mode projectile-mode
2018-01-29 18:38:40 -05:00
(let ((buffer-file-name (expand-file-name "init.el" doom-emacs-dir))
(default-directory doom-emacs-dir))
2017-12-31 11:44:51 -05:00
(should (doom-project-p)))
2018-01-29 18:38:40 -05:00
(let ((buffer-file-name (expand-file-name "test" "~"))
(default-directory (expand-file-name "~")))
2017-12-31 11:44:51 -05:00
(should-not (doom-project-p))))
2018-01-29 18:38:40 -05:00
;; `doom-project-root'
2017-12-31 11:44:51 -05:00
(def-test! project-root
:minor-mode projectile-mode
2017-12-31 11:44:51 -05:00
;; Should resolve to project root
2018-01-29 18:38:40 -05:00
(let ((buffer-file-name (expand-file-name "core.el" doom-core-dir))
(default-directory doom-core-dir))
2017-12-31 11:44:51 -05:00
(should (equal (doom-project-root) doom-emacs-dir)))
;; Should resolve to `default-directory' if not a project
2018-01-29 18:38:40 -05:00
(let ((buffer-file-name (expand-file-name "test" "~"))
(default-directory (expand-file-name "~")))
2017-12-31 11:44:51 -05:00
(should (equal (doom-project-root) default-directory))))
;; `doom-project-expand'
2017-12-31 11:44:51 -05:00
(def-test! project-expand
:minor-mode projectile-mode
2017-12-31 11:44:51 -05:00
(let ((default-directory doom-core-dir))
(should (equal (doom-project-expand "init.el")
(expand-file-name "init.el" (doom-project-root))))))
;; `project-file-exists-p!'
2017-12-31 11:44:51 -05:00
(def-test! project-has!
:minor-mode projectile-mode
2017-12-31 11:44:51 -05:00
(let ((default-directory doom-core-dir))
;; Resolve from project root
(should (project-file-exists-p! "init.el"))
2017-12-31 11:44:51 -05:00
;; Chained file checks
(should (project-file-exists-p! (and "init.el" "LICENSE")))
(should (project-file-exists-p! (or "init.el" "does-not-exist")))
(should (project-file-exists-p! (and "init.el" (or "LICENSE" "does-not-exist"))))
2017-12-31 11:44:51 -05:00
;; Should resolve relative paths from `default-directory'
(should (project-file-exists-p! (and "core/core.el" "./init.el")))))