aboutsummaryrefslogtreecommitdiff
path: root/tests/test-pearl-delete.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-pearl-delete.el')
-rw-r--r--tests/test-pearl-delete.el14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/test-pearl-delete.el b/tests/test-pearl-delete.el
index 02d3380..ea5027f 100644
--- a/tests/test-pearl-delete.el
+++ b/tests/test-pearl-delete.el
@@ -93,6 +93,20 @@
(cl-letf (((symbol-function 'yes-or-no-p) (lambda (&rest _) t)))
(should-error (pearl-delete-current-issue) :type 'user-error))))
+(ert-deftest test-pearl-delete-current-issue-from-inside-comment-walks-up ()
+ "Delete run from inside a comment subtree walks up and deletes the enclosing issue."
+ (test-pearl--in-org
+ "*** TODO ENG-1 Doomed\n:PROPERTIES:\n:LINEAR-ID: a\n:LINEAR-IDENTIFIER: ENG-1\n:END:\nbody\n**** Comments\n***** Someone — ts\n:PROPERTIES:\n:LINEAR-COMMENT-ID: c1\n:END:\ncommentbody\n"
+ (let ((deleted nil))
+ (cl-letf (((symbol-function 'yes-or-no-p) (lambda (&rest _) t))
+ ((symbol-function 'pearl--delete-issue-async)
+ (lambda (id cb) (setq deleted id) (funcall cb '(:success t)))))
+ (re-search-forward "commentbody") ; point inside the comment subtree
+ (pearl-delete-current-issue)
+ (should (equal "a" deleted)) ; climbed to the enclosing issue
+ (goto-char (point-min))
+ (should-not (re-search-forward "Doomed" nil t))))))
+
(ert-deftest test-pearl-delete-current-issue-failure-keeps-subtree ()
"A confirmed delete that fails on the remote leaves the subtree and its sibling intact."
(test-pearl--in-org