build: embed org-agent-test.el inside emacs-bridge skill
This commit is contained in:
@@ -102,3 +102,80 @@ Interfaces for TCP I/O and protocol framing. Source of truth is the Harness Comm
|
|||||||
:probabilistic (lambda (context) nil)
|
:probabilistic (lambda (context) nil)
|
||||||
:deterministic (lambda (action context) action))
|
:deterministic (lambda (action context) action))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
* Emacs Bridge Test Suite
|
||||||
|
#+begin_src elisp :tangle (expand-file-name "tests/org-agent-test.el" (concat (or (getenv "INSTALL_DIR") ".") "/skills"))
|
||||||
|
;;; opencortex-test.el --- Tests for the opencortex Emacs stub
|
||||||
|
|
||||||
|
(require 'ert)
|
||||||
|
(require 'cl-lib)
|
||||||
|
(require 'opencortex "/home/amr/.openclaw/workspace/memex/5_projects/opencortex/src/opencortex.el")
|
||||||
|
|
||||||
|
(ert-deftest test-opencortex-framing ()
|
||||||
|
"Verify that opencortex-send correctly frames a plist."
|
||||||
|
(let ((captured-framed nil))
|
||||||
|
(cl-letf (((symbol-function 'process-send-string)
|
||||||
|
(lambda (proc string) (setq captured-framed string)))
|
||||||
|
((symbol-function 'process-live-p) (lambda (proc) t))
|
||||||
|
(opencortex--process t))
|
||||||
|
(opencortex-send '(:type :EVENT :id 1))
|
||||||
|
(should (string= "000014(:type :EVENT :id 1)" captured-framed)))))
|
||||||
|
|
||||||
|
(ert-deftest test-opencortex-parsing ()
|
||||||
|
"Verify that the filter correctly parses communication protocol framed messages."
|
||||||
|
(let ((mock-buffer (generate-new-buffer " *opencortex-test*"))
|
||||||
|
(received-plist nil))
|
||||||
|
(cl-letf (((symbol-function 'opencortex--handle-message)
|
||||||
|
(lambda (proc plist) (setq received-plist plist))))
|
||||||
|
(with-current-buffer mock-buffer
|
||||||
|
(insert "000014(:type :EVENT :id 1)")
|
||||||
|
(opencortex--process-buffer mock-buffer)
|
||||||
|
(should (equal '(:type :EVENT :id 1) received-plist))
|
||||||
|
(should (= (buffer-size) 0))))))
|
||||||
|
|
||||||
|
(ert-deftest test-opencortex-actuator-message ()
|
||||||
|
"Verify that the :message actuator works."
|
||||||
|
(let ((opencortex--process nil)
|
||||||
|
(captured-response nil))
|
||||||
|
(cl-letf (((symbol-function 'opencortex-send)
|
||||||
|
(lambda (plist) (setq captured-response plist))))
|
||||||
|
(opencortex--execute-request nil 101 '(:action :message :text "Hello from Daemon"))
|
||||||
|
;; Check that we sent a success response back
|
||||||
|
(should (eq :RESPONSE (plist-get captured-response :type)))
|
||||||
|
(should (eq :success (plist-get (plist-get captured-response :payload) :status))))))
|
||||||
|
|
||||||
|
(ert-deftest test-opencortex-run-command ()
|
||||||
|
"Verify that opencortex-run-command sends the correct event."
|
||||||
|
(let ((captured-framed nil))
|
||||||
|
(cl-letf (((symbol-function 'process-send-string)
|
||||||
|
(lambda (proc string) (setq captured-framed string)))
|
||||||
|
((symbol-function 'process-live-p) (lambda (proc) t))
|
||||||
|
(opencortex--process t))
|
||||||
|
(opencortex-run-command :test-cmd)
|
||||||
|
(should (string-match-p ":sensor :user-command" captured-framed))
|
||||||
|
(should (string-match-p ":command :test-cmd" captured-framed)))))
|
||||||
|
|
||||||
|
(ert-deftest test-opencortex-ast-cleaning ()
|
||||||
|
"Verify that opencortex--clean-element produces a pure plist."
|
||||||
|
(let* ((org-text "* Hello\nWorld")
|
||||||
|
(ast (with-temp-buffer
|
||||||
|
(org-mode)
|
||||||
|
(insert org-text)
|
||||||
|
(org-element-parse-buffer)))
|
||||||
|
(cleaned (opencortex--clean-element ast)))
|
||||||
|
(should (plist-get cleaned :type))
|
||||||
|
(should (eq 'org-data (plist-get cleaned :type)))
|
||||||
|
;; Check that children exist
|
||||||
|
(should (plist-get (car (plist-get cleaned :contents)) :type))
|
||||||
|
;; Check that we didn't leak buffer objects
|
||||||
|
(should-not (plist-get (plist-get cleaned :properties) :buffer))))
|
||||||
|
|
||||||
|
(ert-deftest test-opencortex-actuator-eval ()
|
||||||
|
"Verify that the :eval actuator can execute elisp."
|
||||||
|
(let ((opencortex--process nil)
|
||||||
|
(captured-response nil))
|
||||||
|
(cl-letf (((symbol-function 'opencortex-send)
|
||||||
|
(lambda (plist) (setq captured-response plist))))
|
||||||
|
(opencortex--execute-request nil 102 '(:action :eval :code "(+ 1 2)"))
|
||||||
|
(should (equal "3" (plist-get (plist-get captured-response :payload) :result))))))
|
||||||
|
#+end_src
|
||||||
|
|||||||
Reference in New Issue
Block a user