aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBozhidar Batsov <bozhidar@batsov.dev>2026-03-04 21:35:26 +0200
committerBozhidar Batsov <bozhidar@batsov.dev>2026-03-04 21:43:10 +0200
commitb922196e4fa8c46b027b6f91c841ec610a2c83b8 (patch)
tree06ba727749857be3ba9eb02fe99ebb4bc3a384ef /test
parent490067591660e0901358656152066a5c5221ff5c (diff)
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
Diffstat (limited to 'test')
-rw-r--r--test/projectile-test.el28
1 files changed, 26 insertions, 2 deletions
diff --git a/test/projectile-test.el b/test/projectile-test.el
index 39f577d..842eb3a 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)