Fix core & core-lib tests

This commit is contained in:
Henrik Lissner 2019-11-07 21:36:18 -05:00
parent d683effd23
commit d099fac2b9
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
3 changed files with 42 additions and 27 deletions

View file

@ -18,7 +18,7 @@
(setq targets (setq targets
(cons doom-core-dir (cons doom-core-dir
(cl-remove-if-not (cl-remove-if-not
(lambda (path) (file-in-directory-p path doom-emacs-dir)) (doom-rpartial #'file-in-directory-p doom-emacs-dir)
;; Omit `doom-private-dir', which is always first ;; Omit `doom-private-dir', which is always first
(let (doom-modules) (let (doom-modules)
(load (expand-file-name "test/init" doom-core-dir) nil t) (load (expand-file-name "test/init" doom-core-dir) nil t)

View file

@ -234,11 +234,13 @@
(it "loads a file relative to the current directory" (it "loads a file relative to the current directory"
(load! "path") (load! "path")
(expect 'load :to-have-been-called) (expect 'load :to-have-been-called)
(expect 'load :to-have-been-called-with (expand-file-name "path" (eval-when-compile (dir!))) nil t)) (expect 'load :to-have-been-called-with
(expand-file-name "path" (eval-when-compile (dir!))) nil 'nomessage))
(it "loads a file relative to a specified directory" (it "loads a file relative to a specified directory"
(load! "path" doom-etc-dir) (load! "path" doom-etc-dir)
(expect 'load :to-have-been-called-with (expand-file-name "path" doom-etc-dir) nil t))) (expect 'load :to-have-been-called-with
(expand-file-name "path" doom-etc-dir) nil 'nomessage)))
(describe "quiet!" (describe "quiet!"
(it "suppresses output from message" (it "suppresses output from message"

View file

@ -48,21 +48,13 @@
(spy-on 'doom-load-autoloads-file) (spy-on 'doom-load-autoloads-file)
(spy-on 'warn :and-return-value t)) (spy-on 'warn :and-return-value t))
(it "loads autoloads file" (it "loads autoloads files"
(let ((doom-interactive-mode t)) (ignore-errors (doom-initialize))
(ignore-errors (doom-initialize)))
(expect 'doom-load-autoloads-file (expect 'doom-load-autoloads-file
:to-have-been-called-with doom-autoload-file) :to-have-been-called-with doom-autoload-file)
(expect 'doom-load-autoloads-file (expect 'doom-load-autoloads-file
:to-have-been-called-with doom-package-autoload-file)) :to-have-been-called-with doom-package-autoload-file))
(it "does not load package autoloads file if noninteractive"
(doom-initialize)
(expect 'doom-load-autoloads-file
:to-have-been-called-with doom-autoload-file)
(expect 'doom-load-autoloads-file
:not :to-have-been-called-with doom-package-autoload-file))
(it "throws doom-autoload-error in interactive session where autoload files don't exist" (it "throws doom-autoload-error in interactive session where autoload files don't exist"
(let ((doom-interactive-mode t) (let ((doom-interactive-mode t)
(doom-autoload-file "doesnotexist") (doom-autoload-file "doesnotexist")
@ -81,20 +73,39 @@
(expect 'require :to-have-been-called-with 'core-editor)))) (expect 'require :to-have-been-called-with 'core-editor))))
(describe "doom-load-autoloads-file" (describe "doom-load-autoloads-file"
:var (doom-autoload-file doom-alt-autoload-file result)
(before-each (before-each
(spy-on 'load :and-return-value t)) (setq doom-autoload-file (make-temp-file "doom-autoload" nil ".el"))
(with-temp-file doom-autoload-file
(insert "(eval-when-compile (defvar x 1))")
(insert "(defvar x 2)"))
(byte-compile-file doom-autoload-file))
(after-each
(delete-file doom-autoload-file)
(delete-file (byte-compile-dest-file doom-autoload-file)))
(it "loads the autoloads file" (it "loads the byte-compiled autoloads file if available"
(doom-load-autoloads-file doom-autoload-file) (doom-load-autoloads-file doom-autoload-file)
(expect 'load :to-have-been-called-with (file-name-sans-extension doom-autoload-file) (expect (caar load-history) :to-equal
'noerror 'nomessage))) (byte-compile-dest-file doom-autoload-file))
(delete-file (byte-compile-dest-file doom-autoload-file))
(doom-load-autoloads-file doom-autoload-file)
(expect (caar load-history) :to-equal doom-autoload-file))
(it "returns non-nil if successful"
(expect (doom-load-autoloads-file doom-autoload-file)))
(it "returns nil on failure or error, non-fatally"
(expect (doom-load-autoloads-file "/does/not/exist") :to-be nil)))
(describe "doom-load-envvars-file" (describe "doom-load-envvars-file"
:var (envvarfile process-environment) :var (doom-env-file process-environment)
(before-each (before-each
(setq process-environment (copy-sequence process-environment)) (setq process-environment nil
doom-env-file (make-temp-file "doom-env"))
(with-temp-file doom-env-file (with-temp-file doom-env-file
(insert "\n\n\nA=1\nB=2\nC=3\n"))) (insert "A=1\nB=2\nC=3\n")))
(after-each (after-each
(delete-file doom-env-file)) (delete-file doom-env-file))
@ -106,12 +117,14 @@
(expect (doom-load-envvars-file "/tmp/envvardoesnotexist" 'noerror) (expect (doom-load-envvars-file "/tmp/envvardoesnotexist" 'noerror)
:not :to-throw)) :not :to-throw))
(it "loads a well-formed envvar file" (it "returns the new value for `process-environment'"
(expect (getenv "A") :not :to-be-truthy)
(expect (doom-load-envvars-file doom-env-file) (expect (doom-load-envvars-file doom-env-file)
:to-equal '(("A" . "1") ("B" . "2") ("C" . "3"))) :to-equal '("A=1" "B=2" "C=3")))
(expect (getenv "A") :to-equal "1"))
(it "fails on an invalid envvar file" (it "alters environment variables"
(with-temp-file doom-env-file (insert "A=1\nB=2\nC=3\n")) (dolist (key '("A" "B" "C"))
(expect (doom-load-envvars-file doom-env-file) :to-throw)))) (expect (getenv key) :not :to-be-truthy))
(expect (doom-load-envvars-file doom-env-file))
(expect (getenv "A") :to-equal "1")
(expect (getenv "B") :to-equal "2")
(expect (getenv "C") :to-equal "3"))))