2017-06-14 20:26:17 +02:00
|
|
|
;; -*- no-byte-compile: t; -*-
|
|
|
|
;;; core/test/autoload-package.el
|
|
|
|
|
2017-12-31 11:45:02 -05:00
|
|
|
(defun -pkg (name version &optional reqs)
|
2017-06-14 20:26:17 +02:00
|
|
|
(package-desc-create :name name :version version :reqs reqs))
|
|
|
|
|
2017-12-31 11:45:02 -05:00
|
|
|
(defmacro with-packages!! (packages package-descs &rest body)
|
|
|
|
`(let* ((doom-packages-dir ,(expand-file-name "packages/" (file-name-directory load-file-name)))
|
|
|
|
(package-user-dir ,(expand-file-name "elpa" doom-packages-dir))
|
|
|
|
(quelpa-dir ,(expand-file-name "quelpa" doom-packages-dir)))
|
|
|
|
;; (make-directory doom-packages-dir t)
|
|
|
|
(let ((doom-packages ,packages)
|
2017-07-13 13:41:54 +02:00
|
|
|
(package-alist ,package-descs)
|
|
|
|
doom-core-packages)
|
2017-12-31 11:45:02 -05:00
|
|
|
(cl-letf (((symbol-function 'doom-initialize-packages) (lambda (&rest _))))
|
|
|
|
,@body))
|
|
|
|
;; (delete-directory doom-packages-dir t)
|
|
|
|
))
|
2017-07-13 13:41:54 +02:00
|
|
|
|
2017-06-14 20:26:17 +02:00
|
|
|
|
|
|
|
;;
|
|
|
|
;; Tests
|
|
|
|
;;
|
|
|
|
|
|
|
|
(def-test! backend-detection
|
2017-12-31 11:45:02 -05:00
|
|
|
(let ((package-alist `((doom-dummy ,(-pkg 'doom-dummy '(20160405 1234)))))
|
2017-06-14 20:26:17 +02:00
|
|
|
(quelpa-cache '((doom-quelpa-dummy :fetcher github :repo "hlissner/does-not-exist")))
|
|
|
|
(quelpa-initialized-p t))
|
|
|
|
(should (eq (doom-package-backend 'doom-dummy) 'elpa))
|
2017-12-31 11:45:02 -05:00
|
|
|
(should (eq (doom-package-backend 'doom-quelpa-dummy) 'quelpa))
|
|
|
|
(should (eq (doom-package-backend 'org) 'emacs))))
|
2017-06-14 20:26:17 +02:00
|
|
|
|
|
|
|
(def-test! elpa-outdated-detection
|
2018-01-07 00:08:30 -05:00
|
|
|
(let* ((package-alist
|
2017-12-31 11:45:02 -05:00
|
|
|
`((doom-dummy ,(-pkg 'doom-dummy '(20160405 1234)))))
|
2017-07-13 13:41:54 +02:00
|
|
|
(package-archive-contents
|
2017-12-31 11:45:02 -05:00
|
|
|
`((doom-dummy ,(-pkg 'doom-dummy '(20170405 1234))))))
|
2017-07-13 13:41:54 +02:00
|
|
|
(cl-letf (((symbol-function 'package-refresh-contents) (lambda (&rest _))))
|
|
|
|
(should (equal (doom-package-outdated-p 'doom-dummy)
|
|
|
|
'(doom-dummy (20160405 1234) (20170405 1234)))))))
|
2017-06-14 20:26:17 +02:00
|
|
|
|
|
|
|
;; TODO quelpa-outdated-detection
|
|
|
|
|
|
|
|
(def-test! get-packages
|
2017-07-13 13:41:54 +02:00
|
|
|
(let ((quelpa-initialized-p t))
|
2017-12-31 11:45:02 -05:00
|
|
|
(with-packages!!
|
2017-07-13 13:41:54 +02:00
|
|
|
'((doom-dummy))
|
|
|
|
'((doom-dummy nil)
|
|
|
|
(doom-dummy-unwanted nil)
|
|
|
|
(doom-dummy-dep nil))
|
|
|
|
(should (equal (doom-get-packages) '((doom-dummy)))))))
|
2017-06-14 20:26:17 +02:00
|
|
|
|
|
|
|
(def-test! orphaned-packages
|
|
|
|
"Test `doom-get-orphaned-packages', which gets a list of packages that are
|
|
|
|
no longer enabled or depended on."
|
2017-12-31 11:45:02 -05:00
|
|
|
(with-packages!!
|
2017-07-13 13:41:54 +02:00
|
|
|
'((doom-dummy))
|
2017-12-31 11:45:02 -05:00
|
|
|
`((doom-dummy ,(-pkg 'doom-dummy '(20160405 1234) '((doom-dummy-dep (1 0)))))
|
|
|
|
(doom-dummy-unwanted ,(-pkg 'doom-dummy-unwanted '(20160601 1234)))
|
|
|
|
(doom-dummy-dep ,(-pkg 'doom-dummy-dep '(20160301 1234))))
|
2017-07-13 13:41:54 +02:00
|
|
|
(should (equal (doom-get-orphaned-packages) '(doom-dummy-unwanted)))))
|
2017-06-14 20:26:17 +02:00
|
|
|
|
|
|
|
(def-test! missing-packages
|
|
|
|
"Test `doom-get-missing-packages, which gets a list of enabled packages that
|
|
|
|
aren't installed."
|
2017-12-31 11:45:02 -05:00
|
|
|
(with-packages!!
|
2017-07-13 13:41:54 +02:00
|
|
|
'((doom-dummy) (doom-dummy-installed))
|
2017-12-31 11:45:02 -05:00
|
|
|
`((doom-dummy-installed ,(-pkg 'doom-dummy-installed '(20160405 1234))))
|
2017-07-13 13:41:54 +02:00
|
|
|
(should (equal (doom-get-missing-packages) '((doom-dummy))))))
|