feat: add minibuffer actions to spine-index-model for selected books

This commit is contained in:
2026-06-21 11:47:50 -04:00
parent 95dc4b5db4
commit 719751cc84
2 changed files with 61 additions and 1 deletions
+27
View File
@@ -105,3 +105,30 @@
(ert-deftest spine-set-status-missing-id ()
"spine-set-status signals error for unknown ID."
(should-error (spine-set-status "nonexistent-id" "READING")))
(ert-deftest spine-edit-model-minibuffer-want ()
"Selected WANT book has Mark reading and Add note actions."
(spine-edit-test--cleanup)
(unwind-protect
(progn
(spine-edit-test--setup)
(let* ((books (spine-books))
(book (car books))
(id (plist-get book :id))
(model (spine-index-model books nil id))
(groups (ht-get model "groups")))
(cl-labels ((find-book-model (groups id)
(cl-block nil
(dolist (g groups)
(dolist (b (ht-get g "books"))
(when (string= (ht-get b "title") "Edit Test Book")
(cl-return b)))))))
(let ((bm (find-book-model groups id)))
(should bm)
(let ((mb (ht-get bm "minibuffer")))
(should mb)
(let ((actions (ht-get mb "actions")))
(should (= (length actions) 2))
(should (string= (ht-get (nth 0 actions) "label") "Mark reading"))
(should (string= (ht-get (nth 1 actions) "label") "Add note"))))))))
(spine-edit-test--cleanup)))