aboutsummaryrefslogtreecommitdiff
path: root/tests/test-pearl-config.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-pearl-config.el')
-rw-r--r--tests/test-pearl-config.el19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/test-pearl-config.el b/tests/test-pearl-config.el
index e83414c..7d6c838 100644
--- a/tests/test-pearl-config.el
+++ b/tests/test-pearl-config.el
@@ -40,6 +40,25 @@
(should (string-equal "lin_api_abc123" (cdr (assoc "Authorization" headers))))
(should (string-equal "application/json" (cdr (assoc "Content-Type" headers)))))))
+(ert-deftest test-pearl-headers-no-key-is-user-error ()
+ "A missing key signals a `user-error', not a raw error that backtraces."
+ (let ((pearl-api-key nil) (pearl-accounts nil))
+ (should-error (pearl--headers) :type 'user-error)))
+
+(ert-deftest test-pearl-headers-no-key-legacy-advises-api-key ()
+ "Without accounts configured, the advice names `pearl-api-key', not customize."
+ (let ((pearl-api-key nil) (pearl-accounts nil))
+ (let ((err (should-error (pearl--headers) :type 'user-error)))
+ (should (string-match-p "pearl-api-key" (error-message-string err)))
+ (should-not (string-match-p "customize" (error-message-string err))))))
+
+(ert-deftest test-pearl-headers-no-key-accounts-mode-advises-accounts ()
+ "In accounts mode the missing-key advice points at the account setup."
+ (let ((pearl-api-key nil)
+ (pearl-accounts '(("work" :api-key-source (:literal "k") :org-file "/tmp/w.org"))))
+ (let ((err (should-error (pearl--headers) :type 'user-error)))
+ (should (string-match-p "account" (error-message-string err))))))
+
;;; pearl-toggle-debug
(ert-deftest test-pearl-toggle-debug-flips-from-nil ()