diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test-slack-config-display.el | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/test-slack-config-display.el b/tests/test-slack-config-display.el new file mode 100644 index 00000000..24128ddc --- /dev/null +++ b/tests/test-slack-config-display.el @@ -0,0 +1,48 @@ +;;; test-slack-config-display.el --- Slack buffer placement -*- lexical-binding: t; -*- + +;;; Commentary: +;; cj/slack--display-buffer is wired as `slack-buffer-function' so opening a +;; Slack room or thread shows it in another window and never replaces the +;; selected window's buffer. These exercise the placement directly with plain +;; buffers (no live Slack), using a side-by-side split so the window math is +;; reliable under `emacs --batch'. + +;;; Code: + +(require 'ert) +(require 'slack-config) + +(ert-deftest test-slack-config-display-buffer-uses-other-window-when-split () + "Normal: with a split, the buffer lands in a non-selected window." + (let ((a (get-buffer-create "*slack-disp-a*")) + (b (get-buffer-create "*slack-disp-b*"))) + (unwind-protect + (save-window-excursion + (delete-other-windows) + (set-window-buffer (selected-window) a) + (let ((win-a (selected-window))) + (split-window win-a nil t) ;; side-by-side, batch-friendly + (cj/slack--display-buffer b) + (let ((win-b (get-buffer-window b))) + (should win-b) + (should-not (eq win-b win-a))))) + (ignore-errors (kill-buffer a)) + (ignore-errors (kill-buffer b))))) + +(ert-deftest test-slack-config-display-buffer-keeps-selected-window () + "Boundary: displaying does not replace the selected window's buffer." + (let ((a (get-buffer-create "*slack-disp-a*")) + (b (get-buffer-create "*slack-disp-b*"))) + (unwind-protect + (save-window-excursion + (delete-other-windows) + (set-window-buffer (selected-window) a) + (let ((win-a (selected-window))) + (split-window win-a nil t) + (cj/slack--display-buffer b) + (should (eq (window-buffer win-a) a)))) + (ignore-errors (kill-buffer a)) + (ignore-errors (kill-buffer b))))) + +(provide 'test-slack-config-display) +;;; test-slack-config-display.el ends here |
