diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-10 16:36:17 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-10 16:36:17 -0500 |
| commit | 93063d8a35060d5467e2d056bd4496e51f17ddc1 (patch) | |
| tree | 666a81fdb34e758ffb1a49ab8808d0efcdd1face /tests/check-deps.el | |
| parent | 08cf28b2b752a9fdad10201484763f1fbb5733b3 (diff) | |
| download | chime-93063d8a35060d5467e2d056bd4496e51f17ddc1.tar.gz chime-93063d8a35060d5467e2d056bd4496e51f17ddc1.zip | |
test: harden test dependency and temp-dir setup
Diffstat (limited to 'tests/check-deps.el')
| -rw-r--r-- | tests/check-deps.el | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/check-deps.el b/tests/check-deps.el new file mode 100644 index 0000000..0cfa99c --- /dev/null +++ b/tests/check-deps.el @@ -0,0 +1,38 @@ +;;; check-deps.el --- Verify test dependencies are loadable -*- lexical-binding: t; -*- + +;; Copyright (C) 2026 Craig Jennings + +;;; Commentary: + +;; Loaded by tests/Makefile's check-deps target after eask has prepared the +;; test environment. Keep dependency discovery inside Emacs so package.el, +;; package-vc, Eask, Nix, and pre-populated load-path setups all work the same +;; way: a dependency is available if Emacs can require it. + +;;; Code: + +(when noninteractive + (package-initialize)) + +(defconst chime-check-deps-required-features + '(dash alert async org-agenda) + "Features required by the Chime test suite.") + +(defun chime-check-deps--missing-features () + "Return required test features that cannot be loaded." + (let (missing) + (dolist (feature chime-check-deps-required-features (nreverse missing)) + (unless (require feature nil t) + (push feature missing))))) + +(let ((missing (chime-check-deps--missing-features))) + (if missing + (progn + (message "Missing Emacs Lisp test dependencies: %s" + (mapconcat #'symbol-name missing ", ")) + (message "Run `make setup' from the project root, or make these features available on load-path.") + (kill-emacs 1)) + (message "Required Emacs Lisp dependencies are loadable: %s" + (mapconcat #'symbol-name chime-check-deps-required-features ", ")))) + +;;; check-deps.el ends here |
