diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-28 14:31:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-28 14:31:34 -0500 |
| commit | 1e2da6b1a463492ada31ce473414289e761519ca (patch) | |
| tree | 4b8c51e542890b74a8cc946c117d9ae2a2017411 /tests/testutil-gloss.el | |
| parent | 08cd3a12730d26cfc2eae8510da132747643da9e (diff) | |
| download | gloss-1e2da6b1a463492ada31ce473414289e761519ca.tar.gz gloss-1e2da6b1a463492ada31ce473414289e761519ca.zip | |
refactor: extract missing-glossary test helper
Four tests across lookup, list, find-buffer-position, and first-call-creates-file shared the same boilerplate. Each let-bound gloss-file to a randomized nonexistent path, wrapped in unwind-protect, reset the cache, and cleaned up file and buffer afterward.
Extracted as gloss-test--with-missing-glossary in testutil-gloss.el, parallel to the existing gloss-test--with-temp-glossary. The four call sites drop from 8-10 lines each to 2-3.
Tested by running the full 32-test suite. All 32 pass in 0.21 seconds.
Diffstat (limited to 'tests/testutil-gloss.el')
| -rw-r--r-- | tests/testutil-gloss.el | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/testutil-gloss.el b/tests/testutil-gloss.el index b70b0ea..7510765 100644 --- a/tests/testutil-gloss.el +++ b/tests/testutil-gloss.el @@ -58,5 +58,23 @@ visiting buffer." (when (file-exists-p gloss-file) (delete-file gloss-file))))) +(defmacro gloss-test--with-missing-glossary (&rest body) + "Bind `gloss-file' to a path that does not yet exist; run BODY. +Reset the in-memory cache before BODY and after. Clean up the file and +any visiting buffer if BODY created them." + (declare (indent 0) (debug t)) + `(let ((gloss-file (concat temporary-file-directory "gloss-missing-" + (number-to-string (random 100000)) ".org"))) + (unwind-protect + (progn + (gloss-core--cache-reset) + ,@body) + (gloss-core--cache-reset) + (when-let ((buf (find-buffer-visiting gloss-file))) + (with-current-buffer buf (set-buffer-modified-p nil)) + (kill-buffer buf)) + (when (file-exists-p gloss-file) + (delete-file gloss-file))))) + (provide 'testutil-gloss) ;;; testutil-gloss.el ends here |
