aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/projectile-test.el31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/projectile-test.el b/test/projectile-test.el
index 30ddaa3..fc6116d 100644
--- a/test/projectile-test.el
+++ b/test/projectile-test.el
@@ -527,6 +527,37 @@ Just delegates OPERATION and ARGS for all operations except for`shell-command`'.
(let ((projectile-globally-unignored-files '("path/unignored-file")))
(expect (projectile-add-unignored nil nil '("file")) :to-equal '("file" "path/unignored-file")))))))
+(describe "projectile--dirconfig-classify-line"
+ (it "returns nil for blank or whitespace-only lines"
+ (expect (projectile--dirconfig-classify-line "") :to-be nil)
+ (expect (projectile--dirconfig-classify-line " ") :to-be nil)
+ (expect (projectile--dirconfig-classify-line "\t") :to-be nil))
+ (it "classifies prefix dispatches"
+ (expect (projectile--dirconfig-classify-line "+/src")
+ :to-equal '(:keep . "/src"))
+ (expect (projectile--dirconfig-classify-line "-/build")
+ :to-equal '(:ignore . "/build"))
+ (expect (projectile--dirconfig-classify-line "!/build/keepme")
+ :to-equal '(:ensure . "/build/keepme")))
+ (it "treats prefix-less lines as ignore for backward compatibility"
+ (expect (projectile--dirconfig-classify-line "stale-pattern")
+ :to-equal '(:ignore . "stale-pattern")))
+ (it "skips leading whitespace before dispatch"
+ (expect (projectile--dirconfig-classify-line " -indented")
+ :to-equal '(:ignore . "indented"))
+ (expect (projectile--dirconfig-classify-line "\t+keep")
+ :to-equal '(:keep . "keep")))
+ (it "honors the comment prefix when configured"
+ (let ((projectile-dirconfig-comment-prefix ?#))
+ (expect (projectile--dirconfig-classify-line "# a comment")
+ :to-equal '(:comment))
+ (expect (projectile--dirconfig-classify-line " # indented comment")
+ :to-equal '(:comment)))
+ ;; Without a comment prefix, # is just a regular character.
+ (let ((projectile-dirconfig-comment-prefix nil))
+ (expect (projectile--dirconfig-classify-line "#may-be-a-comment")
+ :to-equal '(:ignore . "#may-be-a-comment")))))
+
(describe "projectile-parse-dirconfig-file"
(it "parses dirconfig and returns directories to ignore and keep"
(spy-on 'file-exists-p :and-return-value t)