diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test-pearl-saved-query-sync.el | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/test-pearl-saved-query-sync.el b/tests/test-pearl-saved-query-sync.el index f9bab00..ceac5e6 100644 --- a/tests/test-pearl-saved-query-sync.el +++ b/tests/test-pearl-saved-query-sync.el @@ -267,6 +267,34 @@ URL the create path already wrote." (should (equal "https://linear.app/ws/view/old" (plist-get spec :linear-view-url)))))) +(ert-deftest test-pearl-save-query-mark-synced-preserves-unknown-plist-keys () + "Unknown keys on a saved-query spec survive a mark-synced call. +The earlier implementation rebuilt the spec from a fixed key set and +silently dropped anything outside it. Copy-then-plist-put preserves +arbitrary keys so a future schema field or user annotation isn't +erased on every re-sync." + (let ((pearl-saved-queries + (copy-tree '(("Q" :filter (:open t) + :sort updated + :order desc + :description "private note about this query" + :user-tag "experimental"))))) + (cl-letf (((symbol-function 'customize-save-variable) (lambda (_ _) nil))) + (pearl--save-query-mark-synced "Q" "team-uuid" t "view-uuid" "https://x")) + (let ((spec (cdr (assoc "Q" pearl-saved-queries)))) + ;; Original keys survive. + (should (equal '(:open t) (plist-get spec :filter))) + (should (eq 'updated (plist-get spec :sort))) + (should (eq 'desc (plist-get spec :order))) + (should (equal "private note about this query" + (plist-get spec :description))) + (should (equal "experimental" (plist-get spec :user-tag))) + ;; New sync keys layered on top. + (should (equal "view-uuid" (plist-get spec :linear-view-id))) + (should (equal "team-uuid" (plist-get spec :linear-view-team-id))) + (should (eq t (plist-get spec :linear-view-shared))) + (should (equal "https://x" (plist-get spec :linear-view-url)))))) + (ert-deftest test-pearl-save-query-mark-synced-overwrites-prior-sync-metadata () "Re-syncing an already-synced entry overwrites the four `:linear-view-*' keys." (let ((pearl-saved-queries |
