diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-10 02:43:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-10 02:43:58 -0500 |
| commit | 2afb005af6272b1b4229b377db0423dca045732f (patch) | |
| tree | 907b6c0dbb369b8f79be02617544bced4ed268c8 /tests | |
| parent | 0248afe222a0722ec336e8c09269612eb773702b (diff) | |
| download | dotemacs-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.el | 55 | ||||
| -rw-r--r-- | tests/test-org-sort-by-todo-and-priority.el | 4 |
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 |
