aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-10 02:43:58 -0500
committerCraig Jennings <c@cjennings.net>2026-05-10 02:43:58 -0500
commit2afb005af6272b1b4229b377db0423dca045732f (patch)
tree907b6c0dbb369b8f79be02617544bced4ed268c8 /tests
parent0248afe222a0722ec336e8c09269612eb773702b (diff)
downloaddotemacs-2afb005af6272b1b4229b377db0423dca045732f.tar.gz
dotemacs-2afb005af6272b1b4229b377db0423dca045732f.zip
Clean up Org keymap ownership
Remove the duplicate Org cache keymap and keep C-; O owned by the shared Org map. The cache clear command now clears all Org buffers by default, with a prefix argument for the current buffer.
Diffstat (limited to 'tests')
-rw-r--r--tests/test-org-config-keymap-ownership.el55
-rw-r--r--tests/test-org-sort-by-todo-and-priority.el4
2 files changed, 59 insertions, 0 deletions
diff --git a/tests/test-org-config-keymap-ownership.el b/tests/test-org-config-keymap-ownership.el
new file mode 100644
index 00000000..dd7d314d
--- /dev/null
+++ b/tests/test-org-config-keymap-ownership.el
@@ -0,0 +1,55 @@
+;;; test-org-config-keymap-ownership.el --- Tests for Org keymap ownership -*- lexical-binding: t; -*-
+
+;;; Commentary:
+
+;; Ensure org-config owns C-; O through one keymap.
+
+;;; Code:
+
+(require 'ert)
+
+(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
+(setq load-prefer-newer t)
+
+(defun org-appear-mode (&optional _arg)
+ "Stub `org-appear-mode' for loading org-config in batch tests.")
+(provide 'org-appear)
+
+(require 'org-config)
+
+(ert-deftest test-org-config-keymap-ownership-normal-org-prefix-uses-org-map ()
+ "C-; O should be mounted through `cj/org-map'."
+ (should (eq (keymap-lookup cj/custom-keymap "O")
+ cj/org-map)))
+
+(ert-deftest test-org-config-keymap-ownership-normal-clear-cache-on-org-map ()
+ "The Org prefix should expose one cache-clear command on c."
+ (should (eq (keymap-lookup cj/org-map "c")
+ #'cj/org-clear-element-cache)))
+
+(ert-deftest test-org-config-keymap-ownership-regression-no-duplicate-org-keymap ()
+ "The old duplicate `cj/org-keymap' binding should not exist."
+ (should-not (boundp 'cj/org-keymap)))
+
+(ert-deftest test-org-config-keymap-ownership-normal-clear-cache-defaults-all ()
+ "Cache clear should reset all Org buffers by default."
+ (let ((current-prefix-arg nil)
+ (calls nil))
+ (cl-letf (((symbol-function 'org-element-cache-reset)
+ (lambda (&optional arg) (push arg calls))))
+ (cj/org-clear-element-cache))
+ (should (equal calls '(all)))))
+
+(ert-deftest test-org-config-keymap-ownership-normal-prefix-clears-current-buffer ()
+ "Cache clear should reset only the current Org buffer with a prefix."
+ (let ((current-prefix-arg '(4))
+ (calls nil))
+ (cl-letf (((symbol-function 'org-element-cache-reset)
+ (lambda (&optional arg) (push arg calls))))
+ (with-temp-buffer
+ (setq major-mode 'org-mode)
+ (cj/org-clear-element-cache)))
+ (should (equal calls '(nil)))))
+
+(provide 'test-org-config-keymap-ownership)
+;;; test-org-config-keymap-ownership.el ends here
diff --git a/tests/test-org-sort-by-todo-and-priority.el b/tests/test-org-sort-by-todo-and-priority.el
index cb9ce375..5ad7fccd 100644
--- a/tests/test-org-sort-by-todo-and-priority.el
+++ b/tests/test-org-sort-by-todo-and-priority.el
@@ -20,11 +20,15 @@
(require 'ert)
(require 'org)
+(setq load-prefer-newer t)
;; Stub variables needed by org-config before loading
(defvar cj/custom-keymap (make-sparse-keymap) "Stub keymap for testing.")
(defvar cj/org-map (make-sparse-keymap) "Stub org keymap for testing.")
(defvar org-dir "/tmp/test-org/" "Stub org directory for testing.")
+(defun org-appear-mode (&optional _arg)
+ "Stub `org-appear-mode' for loading org-config in batch tests.")
+(provide 'org-appear)
(require 'org-config) ; Defines cj/org-sort-by-todo-and-priority