From f55711aefc18f6707773a40a859baf874a6bbe6d Mon Sep 17 00:00:00 2001 From: Mats Lidell Date: Thu, 26 Mar 2026 22:38:00 +0100 Subject: [PATCH] Add kotl-mode:kill-tree test * test/kotl-mode-tests.el (kotl-mode--kill-tree-first-and-only-tree): Verify change works. * test/kotl-mode-tests.el (kotl-mode-split-cell): Use new kotl-mode:kill-tree with arg 0 for clearer reuse of test buffer. (kotl-mode--kill-tree-erase-buffer): Test buffer can be erased. --- ChangeLog | 8 ++++++++ test/kotl-mode-tests.el | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 392caccc..a4ef3361 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2026-03-30 Mats Lidell + +* test/kotl-mode-tests.el (kotl-mode-split-cell): Use kotl-mode:kill-tree + with new arg 0 for clearer reuse of test buffer. + (kotl-mode--kill-tree-erase-buffer): Add test for arg 0 to erase buffer. + (kotl-mode--kill-tree-first-and-only-tree): Add test for verifying + removing one tree. + 2026-03-29 Bob Weiner * hypb.el (hypb:in-string-cache): Move Private Variable definitions to precede diff --git a/test/kotl-mode-tests.el b/test/kotl-mode-tests.el index 81665be4..322c9f6d 100644 --- a/test/kotl-mode-tests.el +++ b/test/kotl-mode-tests.el @@ -430,6 +430,35 @@ (should (string= (kcell-view:idstamp) "03"))) (hy-delete-file-and-buffer kotl-file)))) +(ert-deftest kotl-mode--kill-tree-first-and-only-tree () + "Verify removing a one cell tree creates an initial empty first cell." + (let ((kotl-file (make-temp-file "hypb" nil ".kotl"))) + (unwind-protect + (with-current-buffer (find-file kotl-file) + (insert "first") + (kotl-mode:add-child 1 "second") + (kotl-mode:beginning-of-buffer) + (kotl-mode:kill-tree) + (should (kotl-mode:first-cell-p)) + (should (string-empty-p (kcell-view:contents)))) + (hy-delete-file-and-buffer kotl-file)))) + +(ert-deftest kotl-mode--kill-tree-erase-buffer () + "Verify buffer is erased leaving just the initial empty first cell." + (with-temp-buffer + (kotl-mode) + (kotl-mode:kill-tree 0) + (kotl-mode:end-of-buffer) + (should (kotl-mode:first-cell-p)) + (should (string-empty-p (kcell-view:contents))) + + (dotimes (i 20) + (kotl-mode:add-cell 1 "contents")) + (kotl-mode:kill-tree 0) + (kotl-mode:end-of-buffer) + (should (kotl-mode:first-cell-p)) + (should (string-empty-p (kcell-view:contents))))) + (ert-deftest kotl-mode-split-cell () "Kotl-mode split cell." :expected-result :failed @@ -445,7 +474,7 @@ (should (string= (kcell-view:label (point)) "1a")) (should (string= (kcell-view:idstamp) "02"))) (ert-info ("Split after first line") - (kotl-mode:kill-tree) + (kotl-mode:kill-tree 0) (insert "first") (kotl-mode:newline 1) (insert "second") @@ -454,7 +483,7 @@ (kotl-mode:split-cell) (should (= (line-number-at-pos) 3))) (ert-info ("Split before second line") - (kotl-mode:kill-tree) + (kotl-mode:kill-tree 0) (insert "first") (kotl-mode:newline 1) (insert "second")