aboutsummaryrefslogtreecommitdiff
path: root/tests/test-custom-comments-comment-inline-border.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-11 14:18:02 -0500
committerCraig Jennings <c@cjennings.net>2026-07-11 14:18:02 -0500
commit15a4c19fc24a4422122844e20be7ab569d676865 (patch)
tree7fb8dc04c6675feb004e31685e923684640d4a8b /tests/test-custom-comments-comment-inline-border.el
parent3e7ce01e0d2a5f5c294c7d01cf8862e815147666 (diff)
downloaddotemacs-15a4c19fc24a4422122844e20be7ab569d676865.tar.gz
dotemacs-15a4c19fc24a4422122844e20be7ab569d676865.zip
fix(custom-comments): correct comment-reformat and inline-border
cj/comment-reformat printed "No region was selected" on every call, even successful ones, because the message sat outside the if. Its fill-column shrink used a raw setq and restore, so an error mid-join left fill-column permanently at -3. It now signals a user-error when there's no region and dynamically binds fill-column, which restores itself. cj/--comment-inline-border sized the right decoration from text-length parity, leaving even-length and empty text two columns short and misaligning stacked dividers. It now fills the exact remaining width. Both fixes ship with tests, and the inline-border test asserts exact width across parities.
Diffstat (limited to 'tests/test-custom-comments-comment-inline-border.el')
-rw-r--r--tests/test-custom-comments-comment-inline-border.el10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/test-custom-comments-comment-inline-border.el b/tests/test-custom-comments-comment-inline-border.el
index 78e86035..305a2c7a 100644
--- a/tests/test-custom-comments-comment-inline-border.el
+++ b/tests/test-custom-comments-comment-inline-border.el
@@ -120,6 +120,16 @@ Returns the buffer string for assertions."
(let ((result (test-inline-border-at-column 0 ";;" "" "=" "" 10)))
(should (string-match-p ";" result))))
+(ert-deftest test-inline-border-elisp-fills-exact-width-all-parities ()
+ "Boundary: even, odd, and empty text all fill LENGTH exactly.
+Even-length and empty text used to come out two columns short because the
+right decoration count keyed off text-length parity instead of the remaining
+width, so stacked dividers of differing text lengths misaligned."
+ (dolist (text '("" "X" "EVEN" "ODD" "Header"))
+ (let* ((result (test-inline-border-at-column 0 ";;" "" "=" text 50))
+ (line (string-trim-right result "\n")))
+ (should (= 50 (length line))))))
+
(ert-deftest test-inline-border-elisp-text-centering-even ()
"Should center text properly with even length."
(let ((result (test-inline-border-at-column 0 ";;" "" "=" "EVEN" 70)))