aboutsummaryrefslogtreecommitdiff
path: root/tests/test-ai-term--f9-in-term.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-ai-term--f9-in-term.el')
-rw-r--r--tests/test-ai-term--f9-in-term.el58
1 files changed, 0 insertions, 58 deletions
diff --git a/tests/test-ai-term--f9-in-term.el b/tests/test-ai-term--f9-in-term.el
deleted file mode 100644
index 0477f2517..000000000
--- a/tests/test-ai-term--f9-in-term.el
+++ /dev/null
@@ -1,58 +0,0 @@
-;;; test-ai-term--f9-in-term.el --- F9 reaches Emacs from inside an agent buffer -*- lexical-binding: t; -*-
-
-;;; Commentary:
-;; ghostel's semi-char mode forwards keys not in `ghostel-keymap-exceptions' to
-;; the terminal program, so a plain <f9> typed while point is in an agent
-;; buffer would be sent to the program instead of toggling the agent -- exactly
-;; the case when the agent buffer fills the frame. `ai-term.el' re-binds the F9
-;; family in `ghostel-mode-map'. These tests require ghostel (which defines
-;; `ghostel-mode-map' and lets ai-term's `with-eval-after-load' fire) BEFORE
-;; ai-term, then confirm the bindings landed (and the global ones are intact).
-;; `(require 'ghostel)' does not load the native module, so this stays light.
-
-;;; Code:
-
-(require 'ert)
-(require 'package)
-
-(setq package-user-dir (expand-file-name "elpa" user-emacs-directory))
-(package-initialize)
-(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
-(require 'ghostel)
-(require 'ai-term)
-
-(ert-deftest test-ai-term-f9-bound-in-ghostel-mode-map ()
- "Normal: <f9> in `ghostel-mode-map' runs the agent toggle."
- (should (eq (keymap-lookup ghostel-mode-map "<f9>") #'cj/ai-term)))
-
-(ert-deftest test-ai-term-f9-family-bound-in-ghostel-mode-map ()
- "Normal: the C-/s-/M- F9 variants are bound in `ghostel-mode-map' too.
-`s-<f9>' steps to the next agent; `M-<f9>' closes an agent via
-`cj/ai-term-close'."
- (should (eq (keymap-lookup ghostel-mode-map "C-<f9>") #'cj/ai-term-pick-project))
- (should (eq (keymap-lookup ghostel-mode-map "s-<f9>") #'cj/ai-term-next))
- (should (eq (keymap-lookup ghostel-mode-map "M-<f9>") #'cj/ai-term-close)))
-
-(ert-deftest test-ai-term-f9-still-bound-globally ()
- "Normal: the global F9 family bindings are intact.
-`<f9>' toggles the ai-term agent window; `C-<f9>' picks a project
-agent; `s-<f9>' steps to the next agent; `M-<f9>' closes an agent
-via `cj/ai-term-close'."
- (should (eq (lookup-key (current-global-map) (kbd "<f9>")) #'cj/ai-term))
- (should (eq (lookup-key (current-global-map) (kbd "C-<f9>")) #'cj/ai-term-pick-project))
- (should (eq (lookup-key (current-global-map) (kbd "s-<f9>")) #'cj/ai-term-next))
- (should (eq (lookup-key (current-global-map) (kbd "M-<f9>")) #'cj/ai-term-close)))
-
-(ert-deftest test-ai-term-f9-family-in-keymap-exceptions ()
- "Regression: the F9 family is in `ghostel-keymap-exceptions' so semi-char
-mode lets it reach Emacs instead of forwarding it to the terminal program.
-Binding in `ghostel-mode-map' alone is not enough -- the semi-char map outranks
-it and forwards any key not in the exceptions to the pty."
- (dolist (key '("<f9>" "C-<f9>" "s-<f9>" "M-<f9>"))
- (should (member key ghostel-keymap-exceptions)))
- ;; The rebuilt semi-char map must no longer forward <f9> to the pty.
- (should-not (eq (keymap-lookup ghostel-semi-char-mode-map "<f9>")
- 'ghostel--send-event)))
-
-(provide 'test-ai-term--f9-in-term)
-;;; test-ai-term--f9-in-term.el ends here