2015-09-07 23:42:22 +00:00
|
|
|
;;; core-configuration-layer-ftest.el --- Spacemacs Functional Test File
|
|
|
|
;;
|
2018-01-04 07:00:25 +00:00
|
|
|
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
|
2015-09-07 23:42:22 +00:00
|
|
|
;;
|
|
|
|
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
|
|
|
|
;; URL: https://github.com/syl20bnr/spacemacs
|
|
|
|
;;
|
|
|
|
;; This file is not part of GNU Emacs.
|
|
|
|
;;
|
|
|
|
;;; License: GPLv3
|
|
|
|
(require 'core-configuration-layer)
|
|
|
|
|
|
|
|
;; ---------------------------------------------------------------------------
|
2016-07-17 19:00:43 +00:00
|
|
|
;; configuration-layer//declare-used-layers
|
2015-09-07 23:42:22 +00:00
|
|
|
;; ---------------------------------------------------------------------------
|
|
|
|
|
2016-04-03 04:28:47 +00:00
|
|
|
(ert-deftest test-declare-layers--bootstrap-layer-always-first ()
|
2015-09-10 03:51:05 +00:00
|
|
|
(let ((dotspacemacs-distribution 'spacemacs)
|
|
|
|
(dotspacemacs-configuration-layers '(emacs-lisp
|
2016-07-17 19:00:43 +00:00
|
|
|
(git :variables foo 'bar)))
|
|
|
|
configuration-layer--used-layers
|
|
|
|
(configuration-layer--indexed-layers (make-hash-table :size 1024)))
|
core: implement :depends for package declarations
This replaces the older pattern
:toggle (configuration-layer/package-usedp ..)
This implementation ensures that :disabled-for honors dependent packages, i.e.
if package a depends on package b, which is owned by layer c, and layer c is
disabled for layer d, then neither package a nor b will be configured for layer
d. Previously, this was only true for package a, but not b.
This commit also fixes:
- configuration-layer/describe-package now shows which post-init and pre-init
functions are disabled, if any
- Does not recreate all layer objects unconditionally when calling
configuration-layer/discover-layers. Previously, this led to all layers being
recreated after e.g. `SPC h SPC`, without any of the dotfile information.
Since this information is now necessary for
configuration-layer/describe-package, it’s important that we don’t clear the
indexed layers when invoking this function.
2017-06-21 10:27:59 +00:00
|
|
|
(configuration-layer/discover-layers 'refresh-index)
|
2016-08-20 00:39:34 +00:00
|
|
|
(configuration-layer//declare-used-layers dotspacemacs-configuration-layers)
|
2016-07-17 19:00:43 +00:00
|
|
|
(should (eq 'spacemacs-bootstrap
|
|
|
|
(first configuration-layer--used-layers)))))
|
2015-09-07 23:42:22 +00:00
|
|
|
|
2018-05-08 21:35:27 +00:00
|
|
|
(ert-deftest test-declare-layers--defaults-layer-is-second-for-base-distribution ()
|
|
|
|
(let ((dotspacemacs-distribution 'spacemacs-base)
|
|
|
|
(dotspacemacs-configuration-layers '(emacs-lisp
|
|
|
|
(git :variables foo 'bar)))
|
|
|
|
configuration-layer--used-layers
|
|
|
|
(configuration-layer--indexed-layers (make-hash-table :size 1024)))
|
|
|
|
(configuration-layer/discover-layers 'refresh-index)
|
|
|
|
(configuration-layer//declare-used-layers dotspacemacs-configuration-layers)
|
|
|
|
(should (eq 'spacemacs-defaults (second configuration-layer--used-layers)))))
|
|
|
|
|
|
|
|
(ert-deftest test-declare-layers--base-layer-is-third-for-base-distribution ()
|
2016-05-29 01:20:23 +00:00
|
|
|
(let ((dotspacemacs-distribution 'spacemacs-base)
|
2016-04-03 04:28:47 +00:00
|
|
|
(dotspacemacs-configuration-layers '(emacs-lisp
|
2016-07-17 19:00:43 +00:00
|
|
|
(git :variables foo 'bar)))
|
|
|
|
configuration-layer--used-layers
|
|
|
|
(configuration-layer--indexed-layers (make-hash-table :size 1024)))
|
core: implement :depends for package declarations
This replaces the older pattern
:toggle (configuration-layer/package-usedp ..)
This implementation ensures that :disabled-for honors dependent packages, i.e.
if package a depends on package b, which is owned by layer c, and layer c is
disabled for layer d, then neither package a nor b will be configured for layer
d. Previously, this was only true for package a, but not b.
This commit also fixes:
- configuration-layer/describe-package now shows which post-init and pre-init
functions are disabled, if any
- Does not recreate all layer objects unconditionally when calling
configuration-layer/discover-layers. Previously, this led to all layers being
recreated after e.g. `SPC h SPC`, without any of the dotfile information.
Since this information is now necessary for
configuration-layer/describe-package, it’s important that we don’t clear the
indexed layers when invoking this function.
2017-06-21 10:27:59 +00:00
|
|
|
(configuration-layer/discover-layers 'refresh-index)
|
2016-08-20 00:39:34 +00:00
|
|
|
(configuration-layer//declare-used-layers dotspacemacs-configuration-layers)
|
2018-05-08 21:35:27 +00:00
|
|
|
(should (eq 'spacemacs-base (third configuration-layer--used-layers)))))
|
2017-01-25 05:30:31 +00:00
|
|
|
|
|
|
|
;; ---------------------------------------------------------------------------
|
|
|
|
;; Lazy installation of layers
|
|
|
|
;; ---------------------------------------------------------------------------
|