46 lines
2.1 KiB
Common Lisp
46 lines
2.1 KiB
Common Lisp
(defpackage :org-agent-playwright-tests
|
|
(:use :cl :fiveam :org-agent)
|
|
(:export #:playwright-suite))
|
|
(in-package :org-agent-playwright-tests)
|
|
|
|
(def-suite playwright-suite :description "Tests for Playwright Browser Bridge.")
|
|
(in-suite playwright-suite)
|
|
|
|
(test test-browser-bridge-success
|
|
"Verify that successful bridge output is parsed correctly."
|
|
(let ((old-run-program (symbol-function 'uiop:run-program))
|
|
(mock-output "{\"status\": \"success\", \"url\": \"https://example.com\", \"content\": \"Example Domain Content\"}"))
|
|
(unwind-protect
|
|
(progn
|
|
(setf (symbol-function 'uiop:run-program)
|
|
(lambda (cmd &key input output error-output)
|
|
(declare (ignore cmd input output error-output))
|
|
mock-output))
|
|
|
|
(let ((result (org-agent::execute-browser-command '((:url . "https://example.com")))))
|
|
(is (equal "success" (cdr (assoc :status result))))
|
|
(is (equal "Example Domain Content" (cdr (assoc :content result))))))
|
|
(setf (symbol-function 'uiop:run-program) old-run-program))))
|
|
|
|
(test test-browser-bridge-error
|
|
"Verify that bridge errors are captured."
|
|
(let ((old-run-program (symbol-function 'uiop:run-program))
|
|
(mock-output "{\"status\": \"error\", \"message\": \"Page Load Timeout\"}"))
|
|
(unwind-protect
|
|
(progn
|
|
(setf (symbol-function 'uiop:run-program)
|
|
(lambda (cmd &key input output error-output)
|
|
(declare (ignore cmd input output error-output))
|
|
mock-output))
|
|
|
|
(let ((result (org-agent::execute-browser-command '((:url . "https://broken.com")))))
|
|
(is (equal "error" (cdr (assoc :status result))))
|
|
(is (equal "Page Load Timeout" (cdr (assoc :message result))))))
|
|
(setf (symbol-function 'uiop:run-program) old-run-program))))
|
|
|
|
(test test-browser-tool-registration
|
|
"Verify that the :browser tool is correctly registered."
|
|
(let ((tool (gethash "browser" org-agent::*cognitive-tools*)))
|
|
(is (not (null tool)))
|
|
(is (search "High-fidelity" (org-agent::cognitive-tool-description tool)))))
|