(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")))))))