Move unit tests from ert to buttercup
Easier to organize and write. Now I can hopefully strive for better coverage!
This commit is contained in:
parent
98d2f1de3f
commit
eaca8c58fa
41 changed files with 1371 additions and 1101 deletions
128
core/test/test-autoload-package.el
Normal file
128
core/test/test-autoload-package.el
Normal file
|
@ -0,0 +1,128 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; core/test/test-autoload-package.el
|
||||
|
||||
(describe "core/autoload/packages"
|
||||
:var (package-alist
|
||||
package-archive-contents
|
||||
doom-packages
|
||||
quelpa-cache
|
||||
quelpa-initialized-p
|
||||
doom-packages-dir
|
||||
doom-core-packages
|
||||
package-user-dir
|
||||
quelpa-dir
|
||||
pkg)
|
||||
|
||||
(before-all
|
||||
(fset 'pkg
|
||||
(lambda (name version &optional reqs)
|
||||
(package-desc-create :name name :version version :reqs reqs)))
|
||||
(require 'package)
|
||||
(require 'quelpa)
|
||||
(setq 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)
|
||||
quelpa-initialized-p t
|
||||
doom-core-packages nil)
|
||||
(spy-on #'doom-initialize-packages :and-call-fake (lambda (&optional _)))
|
||||
(spy-on #'package-refresh-contents :and-call-fake (lambda (&optional _)))
|
||||
(spy-on #'quelpa-checkout :and-call-fake
|
||||
(lambda (rcp _dir)
|
||||
(when (eq (car rcp) 'doom-quelpa-dummy)
|
||||
"20170405.1234"))))
|
||||
|
||||
(after-all
|
||||
(unload-feature 'package t)
|
||||
(unload-feature 'quelpa t))
|
||||
|
||||
(before-each
|
||||
(setq package-alist
|
||||
`((doom-dummy ,(pkg 'doom-dummy '(20160405 1234)))
|
||||
(doom-uptodate-dummy ,(pkg 'doom-uptodate-dummy '(20160605 1234)))
|
||||
(doom-unwanted-dummy ,(pkg 'doom-unwanted-dummy '(20160605 1234)))
|
||||
(doom-quelpa-dummy ,(pkg 'doom-quelpa-dummy '(20160405 1234)))
|
||||
(doom-noquelpa-dummy ,(pkg 'doom-noquelpa-dummy '(20160405 1234))))
|
||||
package-archive-contents
|
||||
`((doom-dummy ,(pkg 'doom-dummy '(20170405 1234)))
|
||||
(doom-uptodate-dummy ,(pkg 'doom-uptodate-dummy '(20160605 1234))))
|
||||
doom-packages
|
||||
'((doom-dummy)
|
||||
(doom-uptodate-dummy)
|
||||
(doom-missing-dummy)
|
||||
(doom-noquelpa-dummy)
|
||||
(doom-disabled-dummy :disable t)
|
||||
(doom-private-dummy :private t)
|
||||
(doom-disabled-private-dummy :private t :disable t)
|
||||
(doom-quelpa-dummy :recipe (doom-quelpa-dummy :fetcher github :repo "hlissner/does-not-exist")))
|
||||
quelpa-cache
|
||||
'((doom-quelpa-dummy :fetcher github :repo "hlissner/does-not-exist")
|
||||
(doom-noquelpa-dummy :fetcher github :repo "hlissner/does-not-exist-3")
|
||||
(doom-new-quelpa-dummy :fetcher github :repo "hlissner/does-not-exist-2"))))
|
||||
|
||||
(describe "package-backend"
|
||||
(it "determines the correct backend of a package"
|
||||
(expect (doom-package-backend 'doom-dummy) :to-be 'elpa)
|
||||
(expect (doom-package-backend 'doom-quelpa-dummy) :to-be 'quelpa)
|
||||
(expect (doom-package-backend 'org) :to-be 'emacs))
|
||||
(it "errors out if package isn't installed"
|
||||
(expect (doom-package-backend 'xyz) :to-throw)))
|
||||
|
||||
(describe "package-outdated-p (elpa)"
|
||||
(it "detects outdated ELPA packages and returns both versions"
|
||||
(expect (doom-package-outdated-p 'doom-dummy)
|
||||
:to-equal '(doom-dummy (20160405 1234) (20170405 1234))))
|
||||
(it "ignores up-to-date ELPA packages"
|
||||
(expect (doom-package-outdated-p 'doom-uptodate-dummy) :to-be nil))
|
||||
|
||||
(it "detects outdated QUELPA packages and returns both versions"
|
||||
(expect (doom-package-outdated-p 'doom-quelpa-dummy)
|
||||
:to-equal '(doom-quelpa-dummy (20160405 1234) (20170405 1234))))
|
||||
(it "ignores up-to-date QUELPA packages"
|
||||
(expect (doom-package-outdated-p 'doom-uptodate-dummy) :to-be nil))
|
||||
|
||||
(it "returns nil if package isn't installed"
|
||||
(expect (doom-package-outdated-p 'xyz) :to-be nil)))
|
||||
|
||||
(describe "get-packages"
|
||||
(it "returns all packages"
|
||||
(expect (mapcar #'car (doom-get-packages))
|
||||
:to-have-same-items-as
|
||||
(mapcar #'car doom-packages)))
|
||||
(it "returns only disabled packages"
|
||||
(expect (mapcar #'car (doom-get-packages :disabled t))
|
||||
:to-have-same-items-as
|
||||
'(doom-disabled-dummy doom-disabled-private-dummy)))
|
||||
(it "returns only non-disabled packages"
|
||||
(expect (mapcar #'car (doom-get-packages :disabled nil))
|
||||
:to-have-same-items-as
|
||||
'(doom-dummy doom-uptodate-dummy doom-quelpa-dummy doom-missing-dummy doom-noquelpa-dummy doom-private-dummy)))
|
||||
(it "returns only installed packages"
|
||||
(expect (mapcar #'car (doom-get-packages :disabled nil :installed t))
|
||||
:to-have-same-items-as
|
||||
'(doom-dummy doom-uptodate-dummy doom-quelpa-dummy doom-noquelpa-dummy)))
|
||||
(it "returns only non-installed packages"
|
||||
(expect (mapcar #'car (doom-get-packages :disabled nil :installed nil))
|
||||
:to-have-same-items-as
|
||||
'(doom-missing-dummy doom-private-dummy)))
|
||||
(it "returns only private packages"
|
||||
(expect (mapcar #'car (doom-get-packages :private t))
|
||||
:to-have-same-items-as
|
||||
'(doom-private-dummy doom-disabled-private-dummy)))
|
||||
(it "returns only disabled and private packages"
|
||||
(expect (mapcar #'car (doom-get-packages :disabled t :private t))
|
||||
:to-have-same-items-as
|
||||
'(doom-disabled-private-dummy))))
|
||||
|
||||
(describe "get-orphaned-packages"
|
||||
(it "returns orphaned packages"
|
||||
(expect (doom-get-orphaned-packages) :to-contain 'doom-unwanted-dummy))
|
||||
(it "returns packages that have changed backends"
|
||||
(expect (doom-get-orphaned-packages) :to-contain 'doom-noquelpa-dummy)))
|
||||
|
||||
(describe "get-missing-packages"
|
||||
(it "returns packages that haven't been installed"
|
||||
(expect (mapcar #'car (doom-get-missing-packages))
|
||||
:to-contain 'doom-missing-dummy))
|
||||
(it "returns packages that have changed backends"
|
||||
(expect (mapcar #'car (doom-get-missing-packages))
|
||||
:to-contain 'doom-noquelpa-dummy))))
|
Loading…
Add table
Add a link
Reference in a new issue