From 5cd432ea1859b68e92bff02863d5e1c5ff7f84b2 Mon Sep 17 00:00:00 2001 From: Kinneyzhang Date: Tue, 1 Sep 2026 06:28:51 +0800 Subject: [PATCH] test(playground): lock inert source dependency isolation --- tests/etaf-playground-tests.el | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/etaf-playground-tests.el b/tests/etaf-playground-tests.el index dac11ee..e1ffed8 100644 --- a/tests/etaf-playground-tests.el +++ b/tests/etaf-playground-tests.el @@ -47,7 +47,7 @@ "-l" package-file "--eval" (format - "(progn (find-file %S) (unless (eq major-mode 'etaf-playground-etaf-mode) (kill-emacs 11)) (when (featurep 'etaf) (kill-emacs 12)) (princ \"ETAF source mode clean-load OK\\n\"))" + "(progn (find-file %S) (unless (eq major-mode 'etaf-playground-etaf-mode) (kill-emacs 11)) (when (featurep 'etaf) (kill-emacs 12)) (when (featurep 'tp) (kill-emacs 13)) (when (featurep 'tp-transaction) (kill-emacs 14)) (princ \"ETAF source mode clean-load OK\\n\"))" source-file)))) (unless (zerop status) (ert-fail @@ -102,6 +102,22 @@ (should (eq (plist-get (cdr condition) :missing-feature) 'tp-transaction)))))) +(ert-deftest etaf-playground-unrelated-file-missing-is-preserved () + "Runtime loading must not relabel an unrelated missing dependency as TP." + (let ((original-require (symbol-function 'require)) + (injected + '(file-missing "Cannot open load file" + "No such file or directory" + "unrelated-feature"))) + (cl-letf (((symbol-function 'require) + (lambda (feature &optional filename noerror) + (if (eq feature 'etaf) + (signal (car injected) (cdr injected)) + (funcall original-require feature filename noerror))))) + (should (equal (should-error (etaf-playground--ensure-runtime) + :type 'file-missing) + injected))))) + (defun etaf-playground-test--text (buffer) "Return BUFFER's plain rendered text." (with-current-buffer buffer