Test cases for all org-ql-view--*-buffers-files functions
This commit is contained in:
parent
7120b6334d
commit
89b84768ad
1 changed files with 78 additions and 1 deletions
|
|
@ -2111,7 +2111,84 @@ with keyword arg NOW in PLIST."
|
||||||
(it "Refuses to link to non-file-backed buffer"
|
(it "Refuses to link to non-file-backed buffer"
|
||||||
(expect (var-after-link-save-open 'org-ql-view-buffers-files link-buffer query
|
(expect (var-after-link-save-open 'org-ql-view-buffers-files link-buffer query
|
||||||
:buffer link-buffer)
|
:buffer link-buffer)
|
||||||
:to-throw 'user-error '("Views that search non-file-backed buffers can’t be linked to"))))))
|
:to-throw 'user-error '("Views that search non-file-backed buffers can’t be linked to"))))
|
||||||
|
(describe "Completion for Files/buffers"
|
||||||
|
(describe "Contracting org-ql-view-buffers-files"
|
||||||
|
(it "org-agenda-files from list"
|
||||||
|
(spy-on 'org-agenda-files :and-return-value temp-filenames)
|
||||||
|
(expect (org-ql-view--contract-buffers-files temp-filenames) :to-equal "org-agenda-files"))
|
||||||
|
(it "org-directory"
|
||||||
|
(spy-on 'org-ql-search-directories-files :and-return-value temp-filenames)
|
||||||
|
(spy-on 'org-agenda-files :and-return-value '())
|
||||||
|
(expect (org-ql-view--contract-buffers-files temp-filenames) :to-equal temp-filenames))
|
||||||
|
(it "buffer"
|
||||||
|
(with-current-buffer (org-ql-test-data-buffer "data.org")
|
||||||
|
(expect (org-ql-view--contract-buffers-files (current-buffer)) :to-equal "buffer")))
|
||||||
|
(it "org-agenda-files from symbol"
|
||||||
|
(spy-on 'org-agenda-files :and-return-value temp-filenames)
|
||||||
|
(expect (org-ql-view--contract-buffers-files 'org-agenda-files) :to-equal "org-agenda-files")
|
||||||
|
(expect (org-ql-view--contract-buffers-files #'org-agenda-files) :to-equal "org-agenda-files"))
|
||||||
|
(it "Non specific list"
|
||||||
|
(let ((value1 '("a.org" "b.org"))
|
||||||
|
(value2 'a))
|
||||||
|
(expect (org-ql-view--contract-buffers-files value1) :to-equal value1)
|
||||||
|
(expect (org-ql-view--contract-buffers-files value2) :to-equal value2))))
|
||||||
|
(describe "Expanding org-ql-view-buffers-files"
|
||||||
|
(it "all"
|
||||||
|
(let* ((buffer-names (list (make-temp-file "test" nil ".org") (make-temp-file "test" nil ".other")))
|
||||||
|
(buffers (mapcar #'get-buffer-create buffer-names)))
|
||||||
|
(save-excursion
|
||||||
|
(switch-to-buffer (car buffers))
|
||||||
|
(org-mode))
|
||||||
|
(spy-on 'buffer-list :and-return-value buffers)
|
||||||
|
(expect (org-ql-view--expand-buffers-files "all") :to-equal (list (car buffers)))))
|
||||||
|
(it "org-agenda-files"
|
||||||
|
(spy-on 'org-agenda-files :and-return-value "value for org-agenda-files")
|
||||||
|
(expect (org-ql-view--expand-buffers-files "org-agenda-files") :to-equal "value for org-agenda-files"))
|
||||||
|
(it "org-directory"
|
||||||
|
(spy-on 'org-ql-search-directories-files :and-return-value "value for org-directory")
|
||||||
|
(expect (org-ql-view--expand-buffers-files "org-directory") :to-equal "value for org-directory"))
|
||||||
|
(it "buffer"
|
||||||
|
(with-temp-buffer
|
||||||
|
(expect (org-ql-view--expand-buffers-files "buffer") :to-equal (current-buffer))))
|
||||||
|
(it "literal values"
|
||||||
|
(with-temp-buffer
|
||||||
|
(expect (org-ql-view--expand-buffers-files (current-buffer)) :to-equal (current-buffer)))
|
||||||
|
(let ((test-buffer (get-buffer-create (make-temp-file "test"))))
|
||||||
|
(expect (org-ql-view--expand-buffers-files test-buffer) :to-equal test-buffer))
|
||||||
|
(let ((test-list '(1 2 3)))
|
||||||
|
(expect (org-ql-view--expand-buffers-files test-list) :to-equal test-list))
|
||||||
|
(let ((string-literal "this is a string"))
|
||||||
|
(expect (org-ql-view--expand-buffers-files string-literal) :to-equal string-literal))))
|
||||||
|
(describe "Testing org-ql-view--complete-buffers-files"
|
||||||
|
(it "org-agenda-files"
|
||||||
|
(let ((org-ql-view-buffers-files temp-filenames))
|
||||||
|
(spy-on 'org-ql-view--contract-buffers-files :and-call-through)
|
||||||
|
(spy-on 'org-agenda-files :and-return-value temp-filenames)
|
||||||
|
(spy-on 'completing-read :and-return-value "org-agenda-files")
|
||||||
|
(expect (org-ql-view--complete-buffers-files) :to-equal temp-filenames)
|
||||||
|
(expect 'org-ql-view--contract-buffers-files :to-have-been-called-with temp-filenames)
|
||||||
|
(expect 'completing-read :to-have-been-called-with "Buffers/Files: "
|
||||||
|
(list 'buffer 'org-agenda-files 'org-directory 'all)
|
||||||
|
nil nil "org-agenda-files")))
|
||||||
|
(it "nil"
|
||||||
|
(let ((org-ql-view-buffers-files nil))
|
||||||
|
(spy-on 'completing-read :and-return-value nil)
|
||||||
|
(expect (org-ql-view--complete-buffers-files) :to-equal nil)
|
||||||
|
(expect 'completing-read :to-have-been-called-with "Buffers/Files: "
|
||||||
|
(list 'buffer 'org-agenda-files 'org-directory 'all)
|
||||||
|
nil nil nil)))
|
||||||
|
(it "list"
|
||||||
|
(let ((org-ql-view-buffers-files '(1 2 3)))
|
||||||
|
(spy-on 'completing-read :and-return-value nil)
|
||||||
|
(expect (org-ql-view--complete-buffers-files) :to-equal org-ql-view-buffers-files)
|
||||||
|
(expect 'completing-read :not :to-have-been-called)))
|
||||||
|
(it "buffer"
|
||||||
|
(let ((org-ql-view-buffers-files (get-buffer-create (make-temp-file "test"))))
|
||||||
|
(spy-on 'completing-read :and-return-value nil)
|
||||||
|
(expect (org-ql-view--complete-buffers-files) :to-equal org-ql-view-buffers-files)
|
||||||
|
(expect 'completing-read :not :to-have-been-called)))))))
|
||||||
|
|
||||||
|
|
||||||
;; MAYBE: Also test `org-ql-views', although I already know it works now.
|
;; MAYBE: Also test `org-ql-views', although I already know it works now.
|
||||||
;; (describe "org-ql-views")
|
;; (describe "org-ql-views")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue