aboutsummaryrefslogtreecommitdiff
path: root/tests/test-google-keep-config--local-config.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-08-10 01:59:40 -0500
committerCraig Jennings <c@cjennings.net>2026-08-10 01:59:40 -0500
commitebed67a6e285f7667591034b0bc5f962c45e6307 (patch)
treec3fb60ece7a060f76a40471d54632f4dfdda82d9 /tests/test-google-keep-config--local-config.el
parent36c737f45efc4f9459a7923d62ccf2cf5bf2686a (diff)
downloaddotemacs-ebed67a6e285f7667591034b0bc5f962c45e6307.tar.gz
dotemacs-ebed67a6e285f7667591034b0bc5f962c45e6307.zip
feat(google-keep): load machine-local settings from google-keep.local.elHEADmain
The bridge's interpreter path and account email are machine-local, and this config discards customize output, so nothing persisted them across daemon restarts. The module now loads google-keep.local.el when readable (the calendar-sync.local.el shape) before the interpreter check, so a locally-set venv path is what gets verified. A broken local file reports instead of breaking module load. Three tests cover load, absence, and the error path.
Diffstat (limited to 'tests/test-google-keep-config--local-config.el')
-rw-r--r--tests/test-google-keep-config--local-config.el52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test-google-keep-config--local-config.el b/tests/test-google-keep-config--local-config.el
new file mode 100644
index 00000000..18769c5a
--- /dev/null
+++ b/tests/test-google-keep-config--local-config.el
@@ -0,0 +1,52 @@
+;;; test-google-keep-config--local-config.el --- Tests for the Keep machine-local config loader -*- lexical-binding: t; -*-
+
+;;; Commentary:
+;; Tests for cj/keep--load-local-config, the loader for the gitignored
+;; machine-local google-keep.local.el (venv interpreter path, account email) —
+;; the same shape calendar-sync uses for calendar-sync.local.el.
+
+;;; Code:
+
+(require 'ert)
+(require 'google-keep-config)
+
+(ert-deftest test-google-keep-local-config-loads-readable-file ()
+ "Normal: a readable local config file is loaded and its settings apply."
+ (let ((file (make-temp-file "keep-local-" nil ".el")))
+ (unwind-protect
+ (progn
+ (with-temp-file file
+ (insert "(setq test-google-keep--local-marker 'loaded)"))
+ (defvar test-google-keep--local-marker nil)
+ (setq test-google-keep--local-marker nil)
+ (let ((cj/keep-local-config-file file))
+ (should (cj/keep--load-local-config))
+ (should (eq test-google-keep--local-marker 'loaded))))
+ (delete-file file))))
+
+(ert-deftest test-google-keep-local-config-missing-file-is-quiet ()
+ "Boundary: an absent local config file is a silent no-op, no error."
+ (let ((cj/keep-local-config-file "/nonexistent/google-keep.local.el"))
+ (should-not (cj/keep--load-local-config))))
+
+(ert-deftest test-google-keep-local-config-broken-file-does-not-signal ()
+ "Error: a local config file with a broken form is caught and reported,
+never propagated as a load-time error."
+ (let ((file (make-temp-file "keep-local-broken-" nil ".el"))
+ (messages nil))
+ (unwind-protect
+ (progn
+ (with-temp-file file
+ (insert "(error \"deliberately broken local config\")"))
+ (let ((cj/keep-local-config-file file))
+ (cl-letf (((symbol-function 'message)
+ (lambda (fmt &rest args)
+ (push (apply #'format fmt args) messages)
+ nil)))
+ (should-not (cj/keep--load-local-config)))
+ (should (seq-find (lambda (m) (string-match-p "google-keep.*local config" m))
+ messages))))
+ (delete-file file))))
+
+(provide 'test-google-keep-config--local-config)
+;;; test-google-keep-config--local-config.el ends here