aboutsummaryrefslogtreecommitdiff
path: root/tests/test-pearl-fields.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-pearl-fields.el')
-rw-r--r--tests/test-pearl-fields.el73
1 files changed, 14 insertions, 59 deletions
diff --git a/tests/test-pearl-fields.el b/tests/test-pearl-fields.el
index 3722486..2ad9679 100644
--- a/tests/test-pearl-fields.el
+++ b/tests/test-pearl-fields.el
@@ -86,38 +86,9 @@
(should (string-match-p "^\\*\\*\\* TODO Title" (thing-at-point 'line t)))
(should-not (string-match-p "\\[#" (thing-at-point 'line t)))))
-;;; pearl-set-priority
-
-(ert-deftest test-pearl-set-priority-pushes-and-updates-cookie ()
- "Setting priority pushes the numeric value and rewrites the cookie."
- (let ((pushed nil))
- (test-pearl--in-org "*** TODO [#C] Title\n:PROPERTIES:\n:LINEAR-ID: a\n:END:\n"
- (cl-letf (((symbol-function 'pearl--update-issue-async)
- (lambda (_id input cb) (setq pushed input) (funcall cb '(:success t)))))
- (re-search-forward "Title")
- (pearl-set-priority "High")
- (should (equal 2 (cdr (assoc "priority" pushed))))
- (goto-char (point-min))
- (should (string-match-p "\\[#B\\]" (thing-at-point 'line t)))))))
-
-(ert-deftest test-pearl-set-priority-not-on-issue-errors ()
- "Setting priority outside a Linear issue heading signals a user error."
- (test-pearl--in-org "* Plain heading\nno id\n"
- (should-error (pearl-set-priority "High") :type 'user-error)))
-
-(ert-deftest test-pearl-set-priority-failure-preserves-cookie ()
- "A failed priority push attempts the mutation but leaves the cookie unchanged."
- (let (pushed)
- (test-pearl--in-org "*** TODO [#C] Title\n:PROPERTIES:\n:LINEAR-ID: a\n:END:\n"
- (cl-letf (((symbol-function 'pearl--update-issue-async)
- (lambda (_id input cb) (setq pushed input) (funcall cb '(:success nil)))))
- (re-search-forward "Title")
- (pearl-set-priority "High")
- ;; the push was attempted with the intended value ...
- (should (equal 2 (cdr (assoc "priority" pushed))))
- ;; ... but the local cookie is still #C, not #B.
- (goto-char (point-min))
- (should (string-match-p "^\\*\\*\\* TODO \\[#C\\] Title" (thing-at-point 'line t)))))))
+;; pearl-set-priority is gone: priority is edited org-natively via the heading
+;; cookie and reconciled at save (see test-pearl-save). The cookie writer
+;; `pearl--set-priority-cookie' above is still exercised.
;;; --set-heading-state
@@ -140,10 +111,10 @@
(pearl--set-heading-state "Done" "s3")
(should-not fired)))))
-;;; pearl-set-state
+;;; pearl-edit-state (buffer-editor: writes the representation, no push)
-(ert-deftest test-pearl-set-state-pushes-id-and-updates-heading ()
- "Setting state resolves the name to an id, pushes it, and updates the heading."
+(ert-deftest test-pearl-edit-state-writes-heading-no-push ()
+ "edit-state resolves the name, writes keyword/name/id, and does not push."
(let ((pushed nil))
(test-pearl--in-org
"*** TODO [#B] Title\n:PROPERTIES:\n:LINEAR-ID: a\n:LINEAR-TEAM-ID: team-1\n:END:\n"
@@ -151,34 +122,18 @@
(lambda (_team) '(((id . "s1") (name . "Todo"))
((id . "s2") (name . "In Progress")))))
((symbol-function 'pearl--update-issue-async)
- (lambda (_id input cb) (setq pushed input) (funcall cb '(:success t)))))
- (pearl-set-state "In Progress")
- (should (string= "s2" (cdr (assoc "stateId" pushed))))
+ (lambda (&rest _) (setq pushed t))))
+ (pearl-edit-state "In Progress")
+ (should-not pushed)
(goto-char (point-min))
(should (string-match-p "^\\*\\*\\* IN-PROGRESS " (thing-at-point 'line t)))
- (should (string= "In Progress" (org-entry-get nil "LINEAR-STATE-NAME")))))))
+ (should (string= "In Progress" (org-entry-get nil "LINEAR-STATE-NAME")))
+ (should (string= "s2" (org-entry-get nil "LINEAR-STATE-ID")))))))
-(ert-deftest test-pearl-set-state-not-on-issue-errors ()
- "Setting state outside a Linear issue heading signals a user error."
+(ert-deftest test-pearl-edit-state-not-on-issue-errors ()
+ "edit-state outside a Linear issue heading signals a user error."
(test-pearl--in-org "* Plain heading\nno id\n"
- (should-error (pearl-set-state "Done") :type 'user-error)))
-
-(ert-deftest test-pearl-set-state-failure-preserves-keyword-and-drawer ()
- "A failed state push attempts the mutation but leaves the keyword and drawer unchanged."
- (let (pushed)
- (test-pearl--in-org
- "*** TODO [#B] Title\n:PROPERTIES:\n:LINEAR-ID: a\n:LINEAR-TEAM-ID: team-1\n:LINEAR-STATE-ID: s1\n:LINEAR-STATE-NAME: Todo\n:END:\n"
- (cl-letf (((symbol-function 'pearl--team-states)
- (lambda (_t) '(((id . "s1") (name . "Todo"))
- ((id . "s2") (name . "In Progress")))))
- ((symbol-function 'pearl--update-issue-async)
- (lambda (_id input cb) (setq pushed input) (funcall cb '(:success nil)))))
- (pearl-set-state "In Progress")
- (should (string= "s2" (cdr (assoc "stateId" pushed))))
- (goto-char (point-min))
- (should (string-match-p "^\\*\\*\\* TODO " (thing-at-point 'line t)))
- (should (string= "Todo" (org-entry-get nil "LINEAR-STATE-NAME")))
- (should (string= "s1" (org-entry-get nil "LINEAR-STATE-ID")))))))
+ (should-error (pearl-edit-state "Done") :type 'user-error)))
(provide 'test-pearl-fields)
;;; test-pearl-fields.el ends here