I'm sending the patch again as an attachment to ensure it has the correct formatting.
Best, -- Slawomir Grochowski
>From ebbffe101b989b5d76dd07c89747665be375c19e Mon Sep 17 00:00:00 2001 From: Slawomir Grochowski <[email protected]> Date: Mon, 4 May 2026 20:09:54 +0200 Subject: [PATCH] testing/lisp/test-org-colview.el: Pin behavior of conflicting minor modes * testing/lisp/test-org-colview.el (test-org-colview/org-columns-suspends-conflicting-modes): New test. (test-org-colview/org-columns-quit-restores-conflicting-modes): New test. Characterization tests written before the upcoming refactor. They exercise the public API only (`org-columns', `org-columns-quit') and document the contract that column view temporarily turns off `flyspell-mode' and `org-num-mode' on entry, then restores their original state on exit. The tests act as a safety net for the next commit, "Refactor conflicting minor modes management", which extracts the inlined suspend/resume logic into dedicated helpers. Because they do not reference the new helpers, they are valid both before and after the refactor and prove that observable behavior is preserved. --- testing/lisp/test-org-colview.el | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/testing/lisp/test-org-colview.el b/testing/lisp/test-org-colview.el index bbf14d0d4..04dfaba22 100644 --- a/testing/lisp/test-org-colview.el +++ b/testing/lisp/test-org-colview.el @@ -1823,5 +1823,30 @@ there are 4 parameters (org-columns) (get-char-property (point) 'org-columns-value)))))) +(ert-deftest test-org-colview/org-columns-suspends-conflicting-modes () + "`org-columns' turns off `flyspell-mode' / `org-num-mode' while active." + (dolist (mode '(flyspell-mode org-num-mode)) + (cl-letf (((symbol-function mode) + (lambda (&optional arg) + (set (make-local-variable mode) + (and (numberp arg) (> arg 0)))))) + (org-test-with-temp-text "* H" + (funcall mode 1) + (let ((org-columns-default-format "%ITEM")) (org-columns)) + (should-not (symbol-value mode)))))) + +(ert-deftest test-org-colview/org-columns-quit-restores-conflicting-modes () + "`org-columns-quit' re-enables modes that were on before `org-columns'." + (dolist (mode '(flyspell-mode org-num-mode)) + (cl-letf (((symbol-function mode) + (lambda (&optional arg) + (set (make-local-variable mode) + (and (numberp arg) (> arg 0)))))) + (org-test-with-temp-text "* H" + (funcall mode 1) + (let ((org-columns-default-format "%ITEM")) (org-columns)) + (org-columns-quit) + (should (symbol-value mode)))))) + (provide 'test-org-colview) ;;; test-org-colview.el ends here -- 2.39.5
