blob: a7f5423b8bae818ee3be84a974199a251cc8c314 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
;;; test-slack-config-close-all.el --- cj/slack-close-all-buffers guard -*- lexical-binding: t; -*-
;;; Commentary:
;; cj/slack-close-all-buffers iterates every buffer. It must not signal
;; void-variable when `slack-current-buffer' has no binding in a buffer (slack
;; not loaded), and must kill only buffers where it is set non-nil. The original
;; read it with `buffer-local-value' (which errors on buffers without the local
;; binding) instead of guarding like its sibling cj/slack-mark-read-and-bury.
;;; Code:
(require 'ert)
(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
(require 'slack-config)
(ert-deftest test-slack-close-all-buffers-skips-unbound-kills-slack ()
"Error/Normal: no signal on buffers without `slack-current-buffer'; only
buffers that have it set non-nil are killed."
(let ((plain (generate-new-buffer " *plain*"))
(slackish (generate-new-buffer " *slackish*")))
(with-current-buffer slackish (setq-local slack-current-buffer t))
(unwind-protect
(progn
(cj/slack-close-all-buffers)
(should (buffer-live-p plain))
(should-not (buffer-live-p slackish)))
(when (buffer-live-p plain) (kill-buffer plain))
(when (buffer-live-p slackish) (kill-buffer slackish)))))
(provide 'test-slack-config-close-all)
;;; test-slack-config-close-all.el ends here
|