aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-05 12:30:42 -0500
committerCraig Jennings <c@cjennings.net>2026-05-05 12:30:42 -0500
commit26fabb22edfea51e8a686c179ab91d00a2ff0bc3 (patch)
tree7c88db65289ef51ca2109bbaf6c5c887af382829 /tests
parent0b65f607102c12260c7cca5df3d8586c2b1a24bd (diff)
downloadchime-26fabb22edfea51e8a686c179ab91d00a2ff0bc3.tar.gz
chime-26fabb22edfea51e8a686c179ab91d00a2ff0bc3.zip
refactor!: collapse three time-left format defcustoms into one alist
I merged `chime-time-left-format-at-event', `chime-time-left-format-short', and `chime-time-left-format-long' into a single alist `chime-time-left-formats' keyed by `at-event' / `short' / `long'. Three knobs for one feature (countdown display) was unnecessary surface area; one alist is the same flexibility with a third the namespace. `chime--time-left' switched from a pcase-on-variable to a pcase-on-regime that picks an alist key, then `alist-get's the format string. Behavior is identical for default settings. Test setup in the four affected files now builds the alist with `(list (cons 'KEY VAL) ...)' instead of `'(...)'. The literal-quote form returns the SAME cons-cell structure on every evaluation, so a previous test mutating it via `setf' on `alist-get' poisoned later tests. `list' + `cons' produces fresh structure per call, which is what the tests actually need. Migration: `(setq chime-time-left-format-short "in %mm")' becomes `(setf (alist-get 'short chime-time-left-formats) "in %mm")', or a full `(setq chime-time-left-formats '((at-event . ...) (short . ...) (long . ...)))' replacement.
Diffstat (limited to 'tests')
-rw-r--r--tests/test-chime-make-tooltip.el7
-rw-r--r--tests/test-chime-notification-text.el9
-rw-r--r--tests/test-chime-propertize-modeline.el7
-rw-r--r--tests/test-chime-time-left.el21
4 files changed, 24 insertions, 20 deletions
diff --git a/tests/test-chime-make-tooltip.el b/tests/test-chime-make-tooltip.el
index 2c9cf37..7ace684 100644
--- a/tests/test-chime-make-tooltip.el
+++ b/tests/test-chime-make-tooltip.el
@@ -40,9 +40,10 @@
(setq chime-modeline-tooltip-max-events 5)
(setq chime-tooltip-header-format "Upcoming Events as of %a %b %d %Y @ %I:%M %p")
(setq chime-display-time-format-string "%I:%M %p")
- (setq chime-time-left-format-at-event "right now")
- (setq chime-time-left-format-short "in %M")
- (setq chime-time-left-format-long "in %H %M"))
+ (setq chime-time-left-formats
+ (list (cons 'at-event "right now")
+ (cons 'short "in %M")
+ (cons 'long "in %H %M"))))
(defun test-chime-make-tooltip-teardown ()
"Teardown function run after each test."
diff --git a/tests/test-chime-notification-text.el b/tests/test-chime-notification-text.el
index 2446004..a707d29 100644
--- a/tests/test-chime-notification-text.el
+++ b/tests/test-chime-notification-text.el
@@ -40,9 +40,10 @@
;; Reset notification text format to default
(setq chime-notification-text-format "%t at %T (%u)")
;; Reset time-left formats to defaults
- (setq chime-time-left-format-at-event "right now")
- (setq chime-time-left-format-short "in %M")
- (setq chime-time-left-format-long "in %H %M")
+ (setq chime-time-left-formats
+ (list (cons 'at-event "right now")
+ (cons 'short "in %M")
+ (cons 'long "in %H %M")))
;; Reset title truncation to default (no truncation)
(setq chime-max-title-length nil))
@@ -331,7 +332,7 @@ REFACTORED: Uses dynamic timestamps"
(str-interval (cons (test-timestamp-string time) '(10 . medium)))
(event '((title . "Meeting")))
(chime-notification-text-format "%t (%u)")
- (chime-time-left-format-short "in %mm"))
+ (chime-time-left-formats '((at-event . "right now") (short . "in %mm") (long . "in %H %M"))))
(let ((result (chime--notification-text str-interval event)))
(should (stringp result))
(should (string-equal "Meeting (in 10m)" result))))
diff --git a/tests/test-chime-propertize-modeline.el b/tests/test-chime-propertize-modeline.el
index 3856831..cc0dbb2 100644
--- a/tests/test-chime-propertize-modeline.el
+++ b/tests/test-chime-propertize-modeline.el
@@ -38,9 +38,10 @@
(chime-create-test-base-dir)
(setq chime-tooltip-header-format "Upcoming Events as of %a %b %d %Y @ %I:%M %p")
(setq chime-display-time-format-string "%I:%M %p")
- (setq chime-time-left-format-at-event "right now")
- (setq chime-time-left-format-short "in %M")
- (setq chime-time-left-format-long "in %H %M"))
+ (setq chime-time-left-formats
+ (list (cons 'at-event "right now")
+ (cons 'short "in %M")
+ (cons 'long "in %H %M"))))
(defun test-chime-propertize-teardown ()
"Teardown function."
diff --git a/tests/test-chime-time-left.el b/tests/test-chime-time-left.el
index 25b41d9..b9bd176 100644
--- a/tests/test-chime-time-left.el
+++ b/tests/test-chime-time-left.el
@@ -35,9 +35,10 @@
"Setup function run before each test."
(chime-create-test-base-dir)
;; Reset format strings to defaults
- (setq chime-time-left-format-at-event "right now")
- (setq chime-time-left-format-short "in %M")
- (setq chime-time-left-format-long "in %H %M"))
+ (setq chime-time-left-formats
+ (list (cons 'at-event "right now")
+ (cons 'short "in %M")
+ (cons 'long "in %H %M"))))
(defun test-chime-time-left-teardown ()
"Teardown function run after each test."
@@ -216,7 +217,7 @@
(test-chime-time-left-setup)
(unwind-protect
(progn
- (setq chime-time-left-format-short "in %mm")
+ (setf (alist-get 'short chime-time-left-formats) "in %mm")
(let ((result (chime--time-left 300))) ; 5 minutes
(should (stringp result))
(should (string-equal "in 5m" result))))
@@ -227,7 +228,7 @@
(test-chime-time-left-setup)
(unwind-protect
(progn
- (setq chime-time-left-format-long "in %hh %mm")
+ (setf (alist-get 'long chime-time-left-formats) "in %hh %mm")
(let ((result (chime--time-left 5820))) ; 1 hour 37 minutes
(should (stringp result))
(should (string-equal "in 1h 37m" result))))
@@ -238,7 +239,7 @@
(test-chime-time-left-setup)
(unwind-protect
(progn
- (setq chime-time-left-format-long "(%h hr %m min)")
+ (setf (alist-get 'long chime-time-left-formats) "(%h hr %m min)")
(let ((result (chime--time-left 5820))) ; 1 hour 37 minutes
(should (stringp result))
(should (string-equal "(1 hr 37 min)" result))))
@@ -249,7 +250,7 @@
(test-chime-time-left-setup)
(unwind-protect
(progn
- (setq chime-time-left-format-long "%hh%mm")
+ (setf (alist-get 'long chime-time-left-formats) "%hh%mm")
(let ((result (chime--time-left 5820))) ; 1 hour 37 minutes
(should (stringp result))
(should (string-equal "1h37m" result))))
@@ -260,7 +261,7 @@
(test-chime-time-left-setup)
(unwind-protect
(progn
- (setq chime-time-left-format-at-event "NOW!")
+ (setf (alist-get 'at-event chime-time-left-formats) "NOW!")
(let ((result (chime--time-left 0)))
(should (stringp result))
(should (string-equal "NOW!" result))))
@@ -271,7 +272,7 @@
(test-chime-time-left-setup)
(unwind-protect
(progn
- (setq chime-time-left-format-short "%m min")
+ (setf (alist-get 'short chime-time-left-formats) "%m min")
(let ((result (chime--time-left 300))) ; 5 minutes
(should (stringp result))
(should (string-equal "5 min" result))))
@@ -282,7 +283,7 @@
(test-chime-time-left-setup)
(unwind-protect
(progn
- (setq chime-time-left-format-long "🕐 %hh%mm")
+ (setf (alist-get 'long chime-time-left-formats) "🕐 %hh%mm")
(let ((result (chime--time-left 5820))) ; 1 hour 37 minutes
(should (stringp result))
(should (string-equal "🕐 1h37m" result))))