summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--terminal-here.el7
-rw-r--r--test/terminal-here-test.el8
2 files changed, 12 insertions, 3 deletions
diff --git a/terminal-here.el b/terminal-here.el
index 62c4a43..9ba5e32 100644
--- a/terminal-here.el
+++ b/terminal-here.el
@@ -69,9 +69,10 @@ changed it by running `cd'."
If projectile is installed the projectile root will be used,
Otherwise `vc-root-dir' will be used."
(interactive)
- (terminal-here-launch-in-directory (if (functionp 'projectile-project-root)
- (projectile-project-root)
- (vc-root-dir))))
+ (terminal-here-launch-in-directory (cond
+ ((and (functionp 'projectile-project-root) (projectile-project-root)))
+ ((and (functionp 'vc-root-dir) (vc-root-dir)))
+ (t (signal 'user-error "Failed to detect project root, if you are in a version-controlled project try installing projectile or upgrading to emacs 25")))))
diff --git a/test/terminal-here-test.el b/test/terminal-here-test.el
index e30a238..24f5ca4 100644
--- a/test/terminal-here-test.el
+++ b/test/terminal-here-test.el
@@ -55,3 +55,11 @@
(mock (vc-root-dir) => "vc-root")
(mock (terminal-here-launch-in-directory "vc-root"))
(terminal-here-project-launch)))
+
+(ert-deftest no-root-found ()
+ (with-mock
+ (mock (projectile-project-root) => nil)
+ (mock (vc-root-dir) => nil)
+ (should-error
+ (terminal-here-project-launch)
+ :type 'user-error)))