diff options
| author | Bozhidar Batsov <bozhidar@batsov.dev> | 2026-03-04 21:35:26 +0200 |
|---|---|---|
| committer | Bozhidar Batsov <bozhidar@batsov.dev> | 2026-03-04 21:43:10 +0200 |
| commit | b922196e4fa8c46b027b6f91c841ec610a2c83b8 (patch) | |
| tree | 06ba727749857be3ba9eb02fe99ebb4bc3a384ef | |
| parent | 490067591660e0901358656152066a5c5221ff5c (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
| -rw-r--r-- | test/projectile-test.el | 28 |
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) |
