diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-28 03:08:05 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-28 03:08:05 -0500 |
| commit | 998e9c7a08a57f343a3ac2423597ec7e5556f329 (patch) | |
| tree | ef17e79f411fc100ce1bed144c33c03d69e12bcf /tests/test-signal-config.el | |
| parent | 1c93820893a3aa831684e2322c606e54b0bba40c (diff) | |
| download | dotemacs-998e9c7a08a57f343a3ac2423597ec7e5556f329.tar.gz dotemacs-998e9c7a08a57f343a3ac2423597ec7e5556f329.zip | |
feat(signal): dock chat buffer to bottom 30% and add cancel binding
I added a display-buffer-alist entry matching "*Signel:" chat buffers and routing them through display-buffer-at-bottom with window-height 0.3. The signel fork's signel-chat now uses pop-to-buffer instead of switch-to-buffer, which is what makes the rule apply. Without that switch the buffer replaces the current window and skips display-buffer entirely.
Two new tests in test-signal-config.el lock the entry shape and the regex's buffer-name match set. A new test-signel-cancel-input.el covers the fork's C-c C-k handler. It clears the editable region between signel--input-marker and point-max, then quit-windows so the buffer survives the dismiss.
Closes the "Chat buffer placement + exit keys" task filed during the 2026-05-28 manual-verify walk.
Diffstat (limited to 'tests/test-signal-config.el')
| -rw-r--r-- | tests/test-signal-config.el | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/test-signal-config.el b/tests/test-signal-config.el index b362e03b..3be63362 100644 --- a/tests/test-signal-config.el +++ b/tests/test-signal-config.el @@ -368,5 +368,30 @@ commands the workflow spec names." (should (eq (keymap-lookup cj/signel-prefix-map "SPC") #'cj/signel-connect))) +;;; display-buffer-alist entry for *Signel: ...* chat buffers + +(ert-deftest test-signal-config-chat-buffer-display-rule-uses-bottom-30 () + "Normal: signal-config registers a `display-buffer-alist' entry that +matches `*Signel: <id>*' buffers, routes them through +`display-buffer-at-bottom', and sets `window-height' to 0.3 so the +chat docks to the bottom 30% of the frame." + (let ((entry (seq-find (lambda (e) (equal (car e) "\\`\\*Signel: ")) + display-buffer-alist))) + (should entry) + (should (memq 'display-buffer-at-bottom (cadr entry))) + (should (equal 0.3 (cdr (assq 'window-height (cddr entry))))))) + +(ert-deftest test-signal-config-chat-buffer-display-rule-matches-buffer-name () + "Boundary: the registered regex matches a realistic chat buffer name +\(phone-number id and group-id) and does not match unrelated buffers." + (let* ((entry (seq-find (lambda (e) (equal (car e) "\\`\\*Signel: ")) + display-buffer-alist)) + (regex (car entry))) + (should regex) + (should (string-match-p regex "*Signel: +15555550100*")) + (should (string-match-p regex "*Signel: groupid-abc*")) + (should-not (string-match-p regex "*signel-log*")) + (should-not (string-match-p regex "scratch")))) + (provide 'test-signal-config) ;;; test-signal-config.el ends here |
