aboutsummaryrefslogtreecommitdiff
path: root/tests/test-ai-config-gptel-backend-libs.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-ai-config-gptel-backend-libs.el')
-rw-r--r--tests/test-ai-config-gptel-backend-libs.el58
1 files changed, 0 insertions, 58 deletions
diff --git a/tests/test-ai-config-gptel-backend-libs.el b/tests/test-ai-config-gptel-backend-libs.el
deleted file mode 100644
index cbf48f44..00000000
--- a/tests/test-ai-config-gptel-backend-libs.el
+++ /dev/null
@@ -1,58 +0,0 @@
-;;; test-ai-config-gptel-backend-libs.el --- Tests for gptel backend-lib loading -*- lexical-binding: t; -*-
-
-;;; Commentary:
-;; Regression coverage for the "gptel-make-anthropic void" bug. The local
-;; gptel fork (:load-path "~/code/gptel", :ensure nil) ships no generated
-;; autoloads, so (require 'gptel) alone never loads gptel-anthropic /
-;; gptel-openai where the gptel-make-* constructors live. The fix is to
-;; require those backend libraries explicitly before constructing backends.
-;;
-;; These tests don't load gptel itself (it isn't reliably loadable in batch);
-;; they stub `require' and the constructors to verify the loader requires both
-;; libs and that `cj/ensure-gptel-backends' calls it before building backends.
-
-;;; Code:
-
-(require 'ert)
-(require 'cl-lib)
-
-(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
-(require 'ai-config)
-
-;; gptel defvars these at runtime; declare them here so the wiring test can
-;; let-bind them in a batch session where gptel itself is not loaded.
-(defvar gptel-backend)
-(defvar gptel-model)
-
-(ert-deftest test-ai-config-gptel-load-backend-libs-requires-both ()
- "Normal: the loader requires gptel-anthropic and gptel-openai so the fork's
-make-* constructors exist despite the missing autoloads."
- (let ((required '()))
- (cl-letf (((symbol-function 'require)
- (lambda (feature &rest _) (push feature required) feature)))
- (cj/--gptel-load-backend-libs))
- (should (memq 'gptel-anthropic required))
- (should (memq 'gptel-openai required))))
-
-(ert-deftest test-ai-config-ensure-gptel-backends-loads-libs-first ()
- "Regression: `cj/ensure-gptel-backends' loads the backend libs before it
-calls the constructors, so a fork without autoloads no longer signals
-`void-function gptel-make-anthropic'."
- (let ((loaded nil)
- (gptel-claude-backend nil)
- (gptel-chatgpt-backend nil)
- (gptel-backend nil)
- (gptel-model nil))
- (cl-letf (((symbol-function 'cj/--gptel-load-backend-libs)
- (lambda () (setq loaded t)))
- ((symbol-function 'gptel-make-anthropic) (lambda (&rest _) 'claude))
- ((symbol-function 'gptel-make-openai) (lambda (&rest _) 'chatgpt))
- ((symbol-function 'cj/anthropic-api-key) (lambda () "k"))
- ((symbol-function 'cj/openai-api-key) (lambda () "k")))
- (cj/ensure-gptel-backends))
- (should loaded)
- (should (eq gptel-claude-backend 'claude))
- (should (eq gptel-chatgpt-backend 'chatgpt))))
-
-(provide 'test-ai-config-gptel-backend-libs)
-;;; test-ai-config-gptel-backend-libs.el ends here