aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-18 15:38:49 -0500
committerCraig Jennings <c@cjennings.net>2026-07-18 15:38:49 -0500
commit52c031775dca66d308cc341271900258f36b5895 (patch)
tree82d3a0bcd07c02666fb0509f091f85a9ddeda831 /tests
parentbf3857602f3bbc9a485f27ba8b4f461107601367 (diff)
downloaddotemacs-52c031775dca66d308cc341271900258f36b5895.tar.gz
dotemacs-52c031775dca66d308cc341271900258f36b5895.zip
fix(music): show the cursor on the row number and open the dock taller
With point pinned at the row start, redisplay drew the cursor after the number's before-string, on the album-art thumbnail, where a block cursor is invisible. A cursor property on the number string makes redisplay draw it on the number. The dock also kept reopening too short: its height memory remembered whatever size the window had at toggle-off, including squeezes from window churn. The squeezed fraction then overrode the default on every later open. The default rises to a third of the frame, and the toggle discards captured heights below it (a deliberate enlargement still sticks for the session).
Diffstat (limited to 'tests')
-rw-r--r--tests/test-music-config--playlist-dock.el39
-rw-r--r--tests/test-music-config--renumber-rows.el10
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/test-music-config--playlist-dock.el b/tests/test-music-config--playlist-dock.el
index 69d24cc3..501ff272 100644
--- a/tests/test-music-config--playlist-dock.el
+++ b/tests/test-music-config--playlist-dock.el
@@ -70,5 +70,44 @@ silently does nothing."
(should-not (boundp 'cj/--music-playlist-width))
(should-not (fboundp 'cj/--music-playlist-side)))
+(ert-deftest test-music-config-playlist-default-height-is-a-third ()
+ "Normal: the dock opens at a third of the frame height by default."
+ (should (= cj/music-playlist-window-height 0.33)))
+
+(ert-deftest test-music-config-playlist-toggle-off-discards-shrunk-height ()
+ "Error: a captured height below the default is discarded. Window churn
+squeezes the dock, and remembering the squeeze reopens it too short on
+every later toggle."
+ (let ((buffer (generate-new-buffer " *test-playlist-shrink*"))
+ (cj/--music-playlist-height nil))
+ (unwind-protect
+ (save-window-excursion
+ (set-window-buffer (selected-window) buffer)
+ (let ((cj/music-playlist-buffer-name (buffer-name buffer)))
+ (cl-letf (((symbol-function 'cj/side-window-capture-size)
+ (lambda (_w _side var) (set var 0.2)))
+ ((symbol-function 'delete-window) #'ignore)
+ ((symbol-function 'message) #'ignore))
+ (cj/music-playlist-toggle)))
+ (should (null cj/--music-playlist-height)))
+ (kill-buffer buffer))))
+
+(ert-deftest test-music-config-playlist-toggle-off-keeps-enlarged-height ()
+ "Normal: a captured height at or above the default is remembered, so a
+deliberate enlargement sticks for the session."
+ (let ((buffer (generate-new-buffer " *test-playlist-grow*"))
+ (cj/--music-playlist-height nil))
+ (unwind-protect
+ (save-window-excursion
+ (set-window-buffer (selected-window) buffer)
+ (let ((cj/music-playlist-buffer-name (buffer-name buffer)))
+ (cl-letf (((symbol-function 'cj/side-window-capture-size)
+ (lambda (_w _side var) (set var 0.5)))
+ ((symbol-function 'delete-window) #'ignore)
+ ((symbol-function 'message) #'ignore))
+ (cj/music-playlist-toggle)))
+ (should (= 0.5 cj/--music-playlist-height)))
+ (kill-buffer buffer))))
+
(provide 'test-music-config--playlist-dock)
;;; test-music-config--playlist-dock.el ends here
diff --git a/tests/test-music-config--renumber-rows.el b/tests/test-music-config--renumber-rows.el
index 8abe1704..449f6d2e 100644
--- a/tests/test-music-config--renumber-rows.el
+++ b/tests/test-music-config--renumber-rows.el
@@ -47,6 +47,16 @@
(cj/music--renumber-rows (current-buffer))
(should (= 2 (length (test-music-renumber--numbers (current-buffer)))))))
+(ert-deftest test-music-renumber-rows-number-carries-cursor-property ()
+ "Normal: the number string carries a cursor property. Point is pinned at
+the row start, and without the property redisplay draws the cursor after
+the before-string -- on the album-art thumbnail, where it's invisible."
+ (with-temp-buffer
+ (insert "track one\n")
+ (cj/music--renumber-rows (current-buffer))
+ (let ((s (car (test-music-renumber--numbers (current-buffer)))))
+ (should (get-text-property 0 'cursor s)))))
+
;;; Boundary Cases
(ert-deftest test-music-renumber-rows-skips-blank-lines ()