aboutsummaryrefslogtreecommitdiff
path: root/tests/test-term-toggle--buffer-filter.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-25 16:17:26 -0400
committerCraig Jennings <c@cjennings.net>2026-06-25 16:17:26 -0400
commit91c909ae60cfafc336b1d35f8e3a6b511dc5c4a5 (patch)
tree8e44ddf51fff9c42bbfdf77d72803e413b2b0702 /tests/test-term-toggle--buffer-filter.el
parentce8407a1bc79a2f36785d5d8f9b50d948fb9e555 (diff)
downloaddotemacs-91c909ae60cfafc336b1d35f8e3a6b511dc5c4a5.tar.gz
dotemacs-91c909ae60cfafc336b1d35f8e3a6b511dc5c4a5.zip
feat(term): toggle EAT instead of ghostel on F12
F12 now creates and toggles a single EAT terminal (pure-elisp, fully themeable) instead of a ghostel one, reusing the existing dock-and-remember geometry toggle. ghostel stays for ai-term on M-SPC. The EAT terminal runs a plain shell with no tmux. F12 and C-; are bound in EAT's semi-char and mode keymaps so they reach Emacs from inside the terminal (EAT forwards unbound keys to the shell otherwise). Retargeted the toggle's buffer predicate and create-new path from ghostel to EAT, and updated the buffer-filter tests to the EAT semantics.
Diffstat (limited to 'tests/test-term-toggle--buffer-filter.el')
-rw-r--r--tests/test-term-toggle--buffer-filter.el49
1 files changed, 29 insertions, 20 deletions
diff --git a/tests/test-term-toggle--buffer-filter.el b/tests/test-term-toggle--buffer-filter.el
index 2c96ecb3..44f30aad 100644
--- a/tests/test-term-toggle--buffer-filter.el
+++ b/tests/test-term-toggle--buffer-filter.el
@@ -1,11 +1,12 @@
;;; test-term-toggle--buffer-filter.el --- Tests for F12's buffer filter -*- lexical-binding: t; -*-
;;; Commentary:
-;; Three closely-related helpers determine which terminal buffers F12
-;; manages: the predicate `cj/--term-toggle-buffer-p', the MRU list
+;; Three closely-related helpers determine which terminal buffer F12
+;; manages: the predicate `cj/--term-toggle-buffer-p', the list
;; `cj/--term-toggle-buffers', and the per-frame window finder
-;; `cj/--term-toggle-displayed-window'. All three exclude agent-
-;; prefixed buffers so agent has its own F9 surface.
+;; `cj/--term-toggle-displayed-window'. F12 manages the EAT terminal;
+;; ghostel buffers (including ai-term's agent buffers) are NOT F12-managed --
+;; they live on M-SPC.
;;; Code:
@@ -21,16 +22,24 @@
(cj/test--kill-agent-buffers)
(cj/test--kill-test-term-buffers))
-(ert-deftest test-term-toggle--buffer-p-accepts-ghostel-mode ()
- "Normal: a ghostel-mode buffer with non-agent name qualifies."
+(ert-deftest test-term-toggle--buffer-p-accepts-eat-mode ()
+ "Normal: an eat-mode buffer qualifies as the F12 terminal."
(test-term-toggle--cleanup)
- (let ((buf (cj/test--make-fake-ghostel-buffer "*test-term-1*")))
+ (let ((buf (cj/test--make-fake-eat-buffer "*test-term-1*")))
(unwind-protect
(should (cj/--term-toggle-buffer-p buf))
(kill-buffer buf))))
+(ert-deftest test-term-toggle--buffer-p-rejects-ghostel ()
+ "Boundary: a ghostel buffer is NOT F12-managed (ghostel is ai-term's, M-SPC)."
+ (test-term-toggle--cleanup)
+ (let ((buf (cj/test--make-fake-ghostel-buffer "*test-term-ghostel*")))
+ (unwind-protect
+ (should-not (cj/--term-toggle-buffer-p buf))
+ (kill-buffer buf))))
+
(ert-deftest test-term-toggle--buffer-p-rejects-agent ()
- "Boundary: agent-prefixed terminal buffers are excluded from F12's set."
+ "Boundary: ai-term agent buffers are excluded from F12's set."
(test-term-toggle--cleanup)
(let ((buf (cj/test--make-fake-ghostel-buffer "agent [project-a]")))
(unwind-protect
@@ -38,7 +47,7 @@
(kill-buffer buf))))
(ert-deftest test-term-toggle--buffer-p-rejects-non-terminal ()
- "Boundary: a regular buffer (not ghostel-mode, no terminal name prefix) -> nil."
+ "Boundary: a regular buffer (not eat-mode, no terminal name prefix) -> nil."
(test-term-toggle--cleanup)
(let ((buf (get-buffer-create "*test-term-regular*")))
(unwind-protect
@@ -48,35 +57,35 @@
(ert-deftest test-term-toggle--buffer-p-rejects-dead-buffer ()
"Boundary: nil and dead buffers -> nil."
(should-not (cj/--term-toggle-buffer-p nil))
- (let ((buf (cj/test--make-fake-ghostel-buffer "*test-term-dead*")))
+ (let ((buf (cj/test--make-fake-eat-buffer "*test-term-dead*")))
(kill-buffer buf)
(should-not (cj/--term-toggle-buffer-p buf))))
-(ert-deftest test-term-toggle--buffers-filters-agent ()
- "Normal: returns terminal buffers but excludes agent-prefixed ones."
+(ert-deftest test-term-toggle--buffers-returns-eat-excludes-others ()
+ "Normal: returns the EAT terminal but not ghostel/agent buffers."
(test-term-toggle--cleanup)
- (let ((normal (cj/test--make-fake-ghostel-buffer "*test-term-normal*"))
+ (let ((eat (cj/test--make-fake-eat-buffer "*test-term-eat*"))
(agent (cj/test--make-fake-ghostel-buffer "agent [for-test]")))
(unwind-protect
(let ((result (cj/--term-toggle-buffers)))
- (should (memq normal result))
+ (should (memq eat result))
(should-not (memq agent result)))
- (kill-buffer normal)
+ (kill-buffer eat)
(kill-buffer agent))))
(ert-deftest test-term-toggle--displayed-window-finds-terminal ()
- "Normal: terminal in a window -> returns that window."
+ "Normal: the EAT terminal in a window -> returns that window."
(test-term-toggle--cleanup)
- (let ((vt (cj/test--make-fake-ghostel-buffer "*test-term-shown*")))
+ (let ((eat (cj/test--make-fake-eat-buffer "*test-term-shown*")))
(unwind-protect
(save-window-excursion
(delete-other-windows)
(let ((win (split-window-right)))
- (set-window-buffer win vt)
+ (set-window-buffer win eat)
(let ((result (cj/--term-toggle-displayed-window)))
(should (windowp result))
- (should (eq (window-buffer result) vt)))))
- (kill-buffer vt))))
+ (should (eq (window-buffer result) eat)))))
+ (kill-buffer eat))))
(ert-deftest test-term-toggle--displayed-window-skips-agent ()
"Boundary: only an agent terminal is displayed -> nil (agent not F12-managed)."