branch: elpa/projectile
commit b922196e4fa8c46b027b6f91c841ec610a2c83b8
Author: Bozhidar Batsov <[email protected]>
Commit: Bozhidar Batsov <[email protected]>

    Add tests for round 4 codebase fixes
    
    - Test projectile-ignored-project-p truename normalization
    - Test projectile-determine-find-tag-fn fallback behavior
    - Update projectile-files-via-ext-command test for empty string guard
---
 test/projectile-test.el | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/test/projectile-test.el b/test/projectile-test.el
index 39f577de08..842eb3a3cd 100644
--- a/test/projectile-test.el
+++ b/test/projectile-test.el
@@ -643,8 +643,8 @@ Just delegates OPERATION and ARGS for all operations except 
for`shell-command`'.
 
 (describe "projectile-files-via-ext-command"
           (it "returns nil when command is nil or empty or fails"
-              (expect (projectile-files-via-ext-command "" "") :not 
:to-be-truthy)
-              (expect (projectile-files-via-ext-command "" nil) :not 
:to-be-truthy)
+              (expect (projectile-files-via-ext-command "/" "") :not 
:to-be-truthy)
+              (expect (projectile-files-via-ext-command "/" nil) :not 
:to-be-truthy)
               (expect (projectile-files-via-ext-command "" "echo Not a file 
name! > &2") :not :to-be-truthy)
               (expect (projectile-files-via-ext-command "" "echo filename") 
:to-equal '("filename")))
 
@@ -655,6 +655,30 @@ Just delegates OPERATION and ARGS for all operations 
except for`shell-command`'.
               (expect (projectile-files-via-ext-command "" "printf 
'./foo\\0./bar/baz\\0quux'")
                       :to-equal '("foo" "bar/baz" "quux"))))
 
+(describe "projectile-ignored-project-p"
+  (it "matches abbreviated paths against truename-resolved ignored list"
+    (let ((projectile-ignored-projects (list default-directory)))
+      (spy-on 'file-truename :and-call-fake
+              (lambda (f) (expand-file-name f)))
+      (expect (projectile-ignored-project-p
+               (abbreviate-file-name default-directory))
+              :to-be-truthy)))
+  (it "returns nil for non-ignored projects"
+    (let ((projectile-ignored-projects '("/some/other/project/")))
+      (expect (projectile-ignored-project-p "/my/project/")
+              :not :to-be-truthy))))
+
+(describe "projectile-determine-find-tag-fn"
+  (it "falls back to xref-find-definitions when ggtags backend is unavailable"
+    (let ((projectile-tags-backend 'ggtags))
+      (expect (projectile-determine-find-tag-fn) :to-equal 
'xref-find-definitions)))
+  (it "falls back to xref-find-definitions when etags-select backend is 
unavailable"
+    (let ((projectile-tags-backend 'etags-select))
+      (expect (projectile-determine-find-tag-fn) :to-equal 
'xref-find-definitions)))
+  (it "returns xref-find-definitions for auto backend without ggtags"
+    (let ((projectile-tags-backend 'auto))
+      (expect (projectile-determine-find-tag-fn) :to-equal 
'xref-find-definitions))))
+
 (describe "projectile-mode"
   (before-each
     (spy-on 'projectile--cleanup-known-projects)

Reply via email to