aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-05 05:12:11 -0500
committerCraig Jennings <c@cjennings.net>2026-05-05 05:12:11 -0500
commitfda1e989e0c22433b0214ab537a61852d906fd4b (patch)
tree81ae67e370ce28abcd931ff8f2219ec88821a9da /tests
parent84949b4b1d767b10e400bdb126d6091f0684cd65 (diff)
downloadchime-fda1e989e0c22433b0214ab537a61852d906fd4b.tar.gz
chime-fda1e989e0c22433b0214ab537a61852d906fd4b.zip
test: tag integration suite :slow and unstick test-all
I tagged the 15 end-to-end tests across `test-integration-chime-mode.el`, `test-integration-recurring-events-tooltip.el`, and `test-integration-startup.el` with `:tags '(:slow)`. The default `make test` now runs only the 652 fast unit tests; `make test-all` runs the full 667. While verifying, I hit a pre-existing bug in `tests/Makefile` where `test-all`'s `--eval '(ert-run-tests-batch-and-exit)'` came back from eask's argv passthrough with its quotes stripped, which broke shell parsing. Passing the explicit `t` selector dodges whatever eask does to no-arg single-quoted forms. The bug only mattered once integration tests were `:slow` — before that, `test-all` overlapped fully with `test-unit` plus `test-integration`, so nothing actually depended on it working.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile2
-rw-r--r--tests/test-integration-chime-mode.el6
-rw-r--r--tests/test-integration-recurring-events-tooltip.el4
-rw-r--r--tests/test-integration-startup.el5
4 files changed, 16 insertions, 1 deletions
diff --git a/tests/Makefile b/tests/Makefile
index 8635861..7cd6c0b 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -71,7 +71,7 @@ test-all: check-deps
for testfile in $(ALL_TESTS); do \
echo " Testing $$testfile..."; \
$(EMACS_BATCH) -l ert -l "$$testfile" \
- --eval '(ert-run-tests-batch-and-exit)' || failed=$$((failed + 1)); \
+ --eval '(ert-run-tests-batch-and-exit t)' || failed=$$((failed + 1)); \
done; \
if [ $$failed -eq 0 ]; then \
printf "$(GREEN)[✓] All tests passed$(NC)\n"; \
diff --git a/tests/test-integration-chime-mode.el b/tests/test-integration-chime-mode.el
index 69ad176..cd1fec5 100644
--- a/tests/test-integration-chime-mode.el
+++ b/tests/test-integration-chime-mode.el
@@ -36,6 +36,7 @@
(ert-deftest test-integration-chime-mode-enable-adds-to-global-mode-string ()
"Enabling chime-mode should add chime-modeline-string to global-mode-string."
+ :tags '(:slow)
(let ((chime-enable-modeline t)
(chime-modeline-lookahead-minutes 60))
(unwind-protect
@@ -47,6 +48,7 @@
(ert-deftest test-integration-chime-mode-disable-removes-from-global-mode-string ()
"Disabling chime-mode should remove chime-modeline-string from global-mode-string
and set it to nil."
+ :tags '(:slow)
(let ((chime-enable-modeline t)
(chime-modeline-lookahead-minutes 60))
(chime-mode 1)
@@ -56,6 +58,7 @@ and set it to nil."
(ert-deftest test-integration-chime-mode-disable-nils-timer ()
"Disabling chime-mode should set chime--timer to nil."
+ :tags '(:slow)
(let ((chime-enable-modeline t)
(chime-modeline-lookahead-minutes 60))
(chime-mode 1)
@@ -68,6 +71,7 @@ and set it to nil."
(ert-deftest test-integration-chime-mode-enable-sets-modeline-string-immediately ()
"Enabling chime-mode should set chime-modeline-string to a non-nil value
immediately, before the first async check completes."
+ :tags '(:slow)
(let ((chime-enable-modeline t)
(chime-modeline-lookahead-minutes 120)
(chime-modeline-no-events-text " ⏰"))
@@ -81,6 +85,7 @@ immediately, before the first async check completes."
(ert-deftest test-integration-chime-mode-enable-immediate-string-has-tooltip ()
"The immediate modeline string should have a help-echo tooltip."
+ :tags '(:slow)
(let ((chime-enable-modeline t)
(chime-modeline-lookahead-minutes 120)
(chime-modeline-no-events-text " ⏰"))
@@ -93,6 +98,7 @@ immediately, before the first async check completes."
(ert-deftest test-integration-chime-mode-validation-failure-keeps-icon-visible ()
"When validation fails, modeline should still show the icon with error info
in the tooltip, not go blank."
+ :tags '(:slow)
(let ((chime-enable-modeline t)
(chime-modeline-lookahead-minutes 120)
(chime-modeline-no-events-text " ⏰")
diff --git a/tests/test-integration-recurring-events-tooltip.el b/tests/test-integration-recurring-events-tooltip.el
index b612755..810e3ee 100644
--- a/tests/test-integration-recurring-events-tooltip.el
+++ b/tests/test-integration-recurring-events-tooltip.el
@@ -148,6 +148,7 @@ Validates:
- Recurring event expanded 365 times is deduplicated to one entry
- Tooltip shows event title exactly once
- The shown occurrence is the soonest one"
+ :tags '(:slow)
(test-integration-recurring-setup)
(unwind-protect
(let* ((now (test-time-now))
@@ -207,6 +208,7 @@ Components integrated:
Validates:
- Weekly recurring events are deduplicated correctly
- Tooltip shows only soonest occurrence"
+ :tags '(:slow)
(test-integration-recurring-setup)
(unwind-protect
(let* ((now (test-time-now))
@@ -253,6 +255,7 @@ Validates:
- Recurring event appears once
- Non-recurring events all appear
- Total count is correct (recurring deduplicated, others preserved)"
+ :tags '(:slow)
(test-integration-recurring-setup)
(unwind-protect
(let* ((now (test-time-now))
@@ -320,6 +323,7 @@ Validates:
- Each recurring event title appears exactly once
- Different recurring frequencies handled correctly
- Deduplication works independently for each title"
+ :tags '(:slow)
(test-integration-recurring-setup)
(unwind-protect
(let* ((now (test-time-now))
diff --git a/tests/test-integration-startup.el b/tests/test-integration-startup.el
index 6592cf4..1f60b54 100644
--- a/tests/test-integration-startup.el
+++ b/tests/test-integration-startup.el
@@ -107,6 +107,7 @@ Components integrated:
- chime-check (async wrapper around event gathering)
- chime--gather-info (extracts event details)
- chime--update-modeline (updates modeline display)"
+ :tags '(:slow)
(with-startup-config
(let* ((now (test-time-now))
;; Create events at various times
@@ -181,6 +182,7 @@ Validates that chime-validate-configuration returns nil (no issues) when:
- All other dependencies are available
This ensures the startup validation doesn't block legitimate configurations."
+ :tags '(:slow)
(with-startup-config
(let ((content "#+TITLE: Minimal Test\n\n* TODO Test event\nSCHEDULED: <2025-12-01 Mon 10:00>\n"))
;; Create minimal org file
@@ -205,6 +207,7 @@ When validation fails on first check, chime-check should:
- NOT proceed to event gathering
This validates the early-return mechanism works correctly."
+ :tags '(:slow)
(with-startup-config
;; Set up invalid configuration (empty org-agenda-files)
(setq org-agenda-files nil)
@@ -239,6 +242,7 @@ This validates the early-return mechanism works correctly."
Boundary case: org-agenda-files with only one event.
Validates that the gathering and modeline logic work with minimal data."
+ :tags '(:slow)
(with-startup-config
(let* ((now (test-time-now))
(event-time (test-time-at 0 1 0)) ; 1 hour from now
@@ -266,6 +270,7 @@ Validates that the gathering and modeline logic work with minimal data."
Boundary case: Events exist but are far in the future (beyond lookahead window).
Validates that chime doesn't error and modeline shows appropriate state."
+ :tags '(:slow)
(with-startup-config
(let* ((now (test-time-now))
;; Event 30 days from now (beyond 24-hour lookahead)