Files
memex/projects/org-skill-object-store-persistence/tests/test-suite.lisp

25 lines
1.1 KiB
Common Lisp

(defpackage :org-skill-persistence-tests
(:use :cl :fiveam :org-skill-object-store-persistence))
(in-package :org-skill-persistence-tests)
(def-suite persistence-suite
:description "Tests for Object Store serialization fidelity.")
(in-suite persistence-suite)
(test serialize-org-object
"Ensure a complex org-object struct can be dumped and re-read exactly."
(let ((obj (org-agent:make-org-object
:id "test-uuid"
:type :HEADLINE
:attributes '(:TITLE "Test Note" :TODO-STATE "TODO")
:children '("child-1" "child-2"))))
(let ((serialized (prin1-to-string `(setf (gethash "test-uuid" org-agent:*object-store*) ,obj))))
;; Read back the form
(let ((recovered-form (read-from-string serialized)))
(let ((recovered-obj (nth 2 (nth 2 recovered-form))))
(is (equal (org-agent:org-object-id recovered-obj) "test-uuid"))
(is (eq (org-agent:org-object-type recovered-obj) :HEADLINE))
(is (equal (getf (org-agent:org-object-attributes recovered-obj) :TITLE) "Test Note")))))))