aboutsummaryrefslogtreecommitdiff
path: root/tests/test-pearl-heading.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-27 15:21:45 -0500
committerCraig Jennings <c@cjennings.net>2026-05-27 15:21:45 -0500
commita2a155c785cdf43c971b88db174c33ac1e867da3 (patch)
treeeb37a4fe1c4f0146a5791bc0c6948e1e5129231f /tests/test-pearl-heading.el
parentcfc42c41426d61f53c49b1f192751bcd061e57ae (diff)
downloadpearl-a2a155c785cdf43c971b88db174c33ac1e867da3.tar.gz
pearl-a2a155c785cdf43c971b88db174c33ac1e867da3.zip
feat(render): render issue titles and the view name verbatim
The buffer should mirror Linear: a value on the page appears exactly as Linear stores it, so the heading title matches what you'd see opening the issue in Linear itself. I flipped pearl-title-case-headings to default nil so titles render verbatim. I also stopped running the view name in the #+title through the title-caser, which was coupled to the same flag. The smart-title-case path stays as opt-in tidying for anyone who wants it. Two transformations remain, both forced by Org's syntax rather than chosen: state names become TODO keywords (Org keywords can't contain spaces, so the real name stays in the LINEAR-STATE-NAME drawer), and descriptions and comments convert between Markdown and Org. Documented under "Fidelity to Linear" in the README.
Diffstat (limited to 'tests/test-pearl-heading.el')
-rw-r--r--tests/test-pearl-heading.el14
1 files changed, 12 insertions, 2 deletions
diff --git a/tests/test-pearl-heading.el b/tests/test-pearl-heading.el
index 2675518..a780143 100644
--- a/tests/test-pearl-heading.el
+++ b/tests/test-pearl-heading.el
@@ -82,8 +82,18 @@
;;; rendering on / off
-(ert-deftest test-pearl-format-heading-defaults-prefix-and-title-case ()
- "By default the heading carries the identifier prefix and a title-cased title."
+(ert-deftest test-pearl-format-heading-default-prefix-verbatim-title ()
+ "By default the heading carries the identifier prefix and the verbatim title,
+matching Linear's own capitalization."
+ (let ((pearl-show-identifier-in-heading t)
+ (pearl-title-case-headings nil))
+ (let ((out (pearl--format-issue-as-org-entry
+ '(:id "u" :identifier "SE-401" :title "fix the refresh bug"
+ :priority 2 :state (:name "Todo")))))
+ (should (string-match-p "^\\*\\* TODO \\[#B\\] SE-401: fix the refresh bug$" out)))))
+
+(ert-deftest test-pearl-format-heading-title-case-opt-in ()
+ "With title-casing opted in, the title is smart-cased; the prefix is unaffected."
(let ((pearl-show-identifier-in-heading t)
(pearl-title-case-headings t))
(let ((out (pearl--format-issue-as-org-entry