aboutsummaryrefslogtreecommitdiff
path: root/tests/test-restclient-config-inject-skyfi-key.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-23 19:05:01 -0500
committerCraig Jennings <c@cjennings.net>2026-05-23 19:05:01 -0500
commitfcac4e94c7dd858e7d8604afb3e10e731bf1c8b7 (patch)
tree11cb3006702f0dad43d76744c1bebcbab7561490 /tests/test-restclient-config-inject-skyfi-key.el
parentb70781e8eeaa67cf2a1aa804c27b92f38fd52742 (diff)
downloaddotemacs-fcac4e94c7dd858e7d8604afb3e10e731bf1c8b7.tar.gz
dotemacs-fcac4e94c7dd858e7d8604afb3e10e731bf1c8b7.zip
refactor(restclient): remove SkyFi key-injection feature
cj/restclient-skyfi-buffer opened the SkyFi template in a file-visiting buffer and rewrote the :skyfi-key line with the live key from authinfo. An accidental save would then persist the plaintext key to disk, which breaks the module's own "key never stored on disk" promise. The template file was gitignored and never tracked, so the exposure was local only, not a repo leak. I removed the feature rather than hardening it: cj/skyfi-api-key, cj/restclient--inject-skyfi-key, cj/restclient-skyfi-buffer, the C-; R s binding, and the two SkyFi test files are gone, along with the local template. The generic restclient setup stays: scratch buffer on C-; R n, open a .rest file on C-; R o.
Diffstat (limited to 'tests/test-restclient-config-inject-skyfi-key.el')
-rw-r--r--tests/test-restclient-config-inject-skyfi-key.el147
1 files changed, 0 insertions, 147 deletions
diff --git a/tests/test-restclient-config-inject-skyfi-key.el b/tests/test-restclient-config-inject-skyfi-key.el
deleted file mode 100644
index d471b913..00000000
--- a/tests/test-restclient-config-inject-skyfi-key.el
+++ /dev/null
@@ -1,147 +0,0 @@
-;;; test-restclient-config-inject-skyfi-key.el --- Tests for cj/restclient--inject-skyfi-key -*- lexical-binding: t; -*-
-
-;;; Commentary:
-;; Unit tests for cj/restclient--inject-skyfi-key function.
-;; Replaces the :skyfi-key placeholder in a restclient buffer with the real
-;; API key from authinfo. Tests cover Normal, Boundary, and Error cases.
-
-;;; Code:
-
-(when noninteractive
- (package-initialize))
-
-(require 'ert)
-(require 'restclient-config)
-
-;; ---------------------------------------------------------------------------
-;; Test Helpers
-;; ---------------------------------------------------------------------------
-
-(defvar test-inject--fake-key "sk_test_fake_key_12345"
- "Fake API key used in tests.")
-
-(defmacro test-inject--with-skyfi-buffer (content &rest body)
- "Create a temp buffer with CONTENT simulating skyfi-api.rest, then run BODY.
-Sets buffer-file-name to skyfi-api.rest and activates restclient-mode.
-Binds `cj/skyfi-api-key' to return `test-inject--fake-key'."
- (declare (indent 1))
- `(with-temp-buffer
- (insert ,content)
- (setq buffer-file-name (expand-file-name "data/skyfi-api.rest" user-emacs-directory))
- (restclient-mode)
- (cl-letf (((symbol-function 'cj/skyfi-api-key)
- (lambda () test-inject--fake-key)))
- ,@body)))
-
-;; ---------------------------------------------------------------------------
-;;; Normal Cases
-;; ---------------------------------------------------------------------------
-
-(ert-deftest test-inject-skyfi-key-replaces-placeholder ()
- "Replaces :skyfi-key = PLACEHOLDER with real key."
- (test-inject--with-skyfi-buffer
- ":skyfi-key = PLACEHOLDER\n#\nGET https://example.com\n"
- (cj/restclient--inject-skyfi-key)
- (goto-char (point-min))
- (should (string-match-p (format ":skyfi-key = %s" test-inject--fake-key)
- (buffer-string)))))
-
-(ert-deftest test-inject-skyfi-key-preserves-other-content ()
- "Rest of buffer content unchanged after injection."
- (let ((rest-content "# SkyFi API\nGET https://app.skyfi.com/platform-api/\nAPIKey: :skyfi-key\n"))
- (test-inject--with-skyfi-buffer
- (concat ":skyfi-key = PLACEHOLDER\n" rest-content)
- (cj/restclient--inject-skyfi-key)
- (should (string-match-p "# SkyFi API" (buffer-string)))
- (should (string-match-p "APIKey: :skyfi-key" (buffer-string))))))
-
-(ert-deftest test-inject-skyfi-key-only-replaces-skyfi-key-line ()
- "Does not modify other restclient variable lines."
- (test-inject--with-skyfi-buffer
- ":skyfi-key = PLACEHOLDER\n:other-var = keep-me\n"
- (cj/restclient--inject-skyfi-key)
- (should (string-match-p ":other-var = keep-me" (buffer-string)))))
-
-;; ---------------------------------------------------------------------------
-;;; Boundary Cases
-;; ---------------------------------------------------------------------------
-
-(ert-deftest test-inject-skyfi-key-no-key-line-no-error ()
- "Buffer with no :skyfi-key line — no change, no error."
- (test-inject--with-skyfi-buffer
- "# Just comments\nGET https://example.com\n"
- (let ((before (buffer-string)))
- (cj/restclient--inject-skyfi-key)
- (should (string= before (buffer-string))))))
-
-(ert-deftest test-inject-skyfi-key-already-has-value ()
- "Buffer where :skyfi-key already has a real value — still replaces (idempotent)."
- (test-inject--with-skyfi-buffer
- ":skyfi-key = old_real_key_abc\n"
- (cj/restclient--inject-skyfi-key)
- (should (string-match-p (format ":skyfi-key = %s" test-inject--fake-key)
- (buffer-string)))))
-
-(ert-deftest test-inject-skyfi-key-empty-buffer ()
- "Empty buffer — no error."
- (test-inject--with-skyfi-buffer ""
- (cj/restclient--inject-skyfi-key)
- (should (string= "" (buffer-string)))))
-
-(ert-deftest test-inject-skyfi-key-only-first-occurrence ()
- "Multiple :skyfi-key lines — only first replaced."
- (test-inject--with-skyfi-buffer
- ":skyfi-key = PLACEHOLDER\n:skyfi-key = SECOND\n"
- (cj/restclient--inject-skyfi-key)
- (let ((content (buffer-string)))
- (should (string-match-p (format ":skyfi-key = %s" test-inject--fake-key) content))
- (should (string-match-p ":skyfi-key = SECOND" content)))))
-
-;; ---------------------------------------------------------------------------
-;;; Error Cases
-;; ---------------------------------------------------------------------------
-
-(ert-deftest test-inject-skyfi-key-wrong-mode-no-replacement ()
- "Wrong major mode — no replacement happens."
- (with-temp-buffer
- (insert ":skyfi-key = PLACEHOLDER\n")
- (setq buffer-file-name (expand-file-name "data/skyfi-api.rest" user-emacs-directory))
- (fundamental-mode)
- (let ((before (buffer-string)))
- (cj/restclient--inject-skyfi-key)
- (should (string= before (buffer-string))))))
-
-(ert-deftest test-inject-skyfi-key-wrong-filename-no-replacement ()
- "Wrong filename — no replacement happens."
- (with-temp-buffer
- (insert ":skyfi-key = PLACEHOLDER\n")
- (setq buffer-file-name "/tmp/other-file.rest")
- (restclient-mode)
- (let ((before (buffer-string)))
- (cj/restclient--inject-skyfi-key)
- (should (string= before (buffer-string))))))
-
-(ert-deftest test-inject-skyfi-key-no-filename-no-replacement ()
- "No filename (scratch buffer) — no replacement happens."
- (with-temp-buffer
- (insert ":skyfi-key = PLACEHOLDER\n")
- (restclient-mode)
- (setq buffer-file-name nil)
- (let ((before (buffer-string)))
- (cj/restclient--inject-skyfi-key)
- (should (string= before (buffer-string))))))
-
-(ert-deftest test-inject-skyfi-key-auth-returns-nil-no-error ()
- "Auth-source returns nil — no error, no replacement."
- (with-temp-buffer
- (insert ":skyfi-key = PLACEHOLDER\n")
- (setq buffer-file-name (expand-file-name "data/skyfi-api.rest" user-emacs-directory))
- (restclient-mode)
- (cl-letf (((symbol-function 'cj/skyfi-api-key)
- (lambda () nil)))
- (let ((before (buffer-string)))
- (cj/restclient--inject-skyfi-key)
- (should (string= before (buffer-string)))))))
-
-(provide 'test-restclient-config-inject-skyfi-key)
-;;; test-restclient-config-inject-skyfi-key.el ends here