diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-24 15:24:12 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-24 15:24:12 -0500 |
| commit | 11109b45094eaecc1dc87a2e99afab4040732c8f (patch) | |
| tree | da484f44f7cff8b4ac76fd56273c2130216cac45 /tests/test-pearl-comment-editing.el | |
| parent | 95bd7f4661ec5f43ba2eb7e8545b3cf9287e55c8 (diff) | |
| download | pearl-11109b45094eaecc1dc87a2e99afab4040732c8f.tar.gz pearl-11109b45094eaecc1dc87a2e99afab4040732c8f.zip | |
test: cover comment insertion and extraction boundary cases
Added ERT tests: append targets the current issue's Comments subtree even when a later issue already has its own Comments; add-comment from inside a comment subtree refuses (no issue id at that heading); edit-current-comment refuses a comment missing LINEAR-COMMENT-ID with no network call; and a comment body containing drawer-looking (:note:) text reads back intact. 380 tests green.
Diffstat (limited to 'tests/test-pearl-comment-editing.el')
| -rw-r--r-- | tests/test-pearl-comment-editing.el | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/test-pearl-comment-editing.el b/tests/test-pearl-comment-editing.el index 866366f..be65aa3 100644 --- a/tests/test-pearl-comment-editing.el +++ b/tests/test-pearl-comment-editing.el @@ -256,5 +256,33 @@ (should (eq 'pearl-editable-comment (face-on "^\\*\\*\\*\\*\\* Me"))) (should (eq 'pearl-readonly-comment (face-on "^\\*\\*\\*\\*\\* Them")))))) +(ert-deftest test-pearl-add-comment-from-inside-comment-refuses () + "Running add-comment from inside a comment subtree refuses — no issue id there." + (test-pearl--in-org (test-pearl--comment-doc "u-me" "stored" "uniquecommentline") + (goto-char (point-min)) + (re-search-forward "uniquecommentline") ; point inside the comment subtree + (should-error (pearl-add-comment "hi") :type 'user-error))) + +(ert-deftest test-pearl-edit-comment-missing-id-refuses-no-network () + "A comment subtree without LINEAR-COMMENT-ID is refused with no network call." + (test-pearl--in-org + (concat "** TODO Issue\n:PROPERTIES:\n:LINEAR-ID: a\n:END:\nBody.\n" + "*** Comments\n**** Me — ts\n:PROPERTIES:\n:LINEAR-COMMENT-AUTHOR-ID: u-me\n:END:\nedited\n") + (let ((net nil)) + (cl-letf (((symbol-function 'pearl--fetch-comment-body-async) (lambda (&rest _) (setq net t))) + ((symbol-function 'pearl--update-comment-async) (lambda (&rest _) (setq net t)))) + (re-search-forward "edited") + (should-error (pearl-edit-current-comment) :type 'user-error) + (should-not net))))) + +(ert-deftest test-pearl-comment-body-reads-drawer-looking-text () + "A comment body containing a colon-wrapped, drawer-looking line reads back intact." + (test-pearl--in-org + (concat "** TODO Issue\n:PROPERTIES:\n:LINEAR-ID: a\n:END:\nBody.\n" + "*** Comments\n**** Me — ts\n:PROPERTIES:\n:LINEAR-COMMENT-ID: c1\n:END:\n" + "see :note: below\nand more text\n") + (re-search-forward "see :note:") + (should (string= "see :note: below\nand more text" (pearl--issue-body-at-point))))) + (provide 'test-pearl-comment-editing) ;;; test-pearl-comment-editing.el ends here |
