blob: 9d596217ae00d7f74f74bbaaa91f05aa1a42f781 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
;;; test-coverage-core--project-root.el --- Tests for cj/--coverage-project-root -*- lexical-binding: t -*-
;;; Commentary:
;; Tests for `cj/--coverage-project-root' in coverage-core.el — returns the
;; projectile project root when available, else `default-directory'.
;;; Code:
(require 'ert)
(require 'cl-lib)
(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
(require 'coverage-core)
;;; Normal Cases
(ert-deftest test-coverage-project-root-uses-projectile-when-available ()
"Normal: with projectile available and in a project, returns its root."
(cl-letf (((symbol-function 'projectile-project-root)
(lambda () "/home/u/proj/")))
(should (equal (cj/--coverage-project-root) "/home/u/proj/"))))
;;; Boundary Cases
(ert-deftest test-coverage-project-root-falls-back-when-projectile-absent ()
"Boundary: with no projectile function, falls back to default-directory."
(cl-letf (((symbol-function 'projectile-project-root) nil))
(let ((default-directory "/fallback/dir/"))
(should (equal (cj/--coverage-project-root) "/fallback/dir/")))))
(ert-deftest test-coverage-project-root-falls-back-when-not-in-project ()
"Boundary: projectile present but returns nil (not in a project) falls back."
(cl-letf (((symbol-function 'projectile-project-root) (lambda () nil)))
(let ((default-directory "/fallback/dir/"))
(should (equal (cj/--coverage-project-root) "/fallback/dir/")))))
(provide 'test-coverage-core--project-root)
;;; test-coverage-core--project-root.el ends here
|