mirror of
https://github.com/vale981/lack
synced 2025-03-05 09:21:39 -05:00
42 lines
1.3 KiB
Common Lisp
42 lines
1.3 KiB
Common Lisp
(in-package :cl-user)
|
|
(defpackage t.lack.util
|
|
(:use :cl
|
|
:prove
|
|
:lack.util
|
|
:lack.test))
|
|
(in-package :t.lack.util)
|
|
|
|
(plan 2)
|
|
|
|
(subtest "find-package-or-load"
|
|
(is (find-package-or-load "LACK")
|
|
(find-package :lack))
|
|
(is (find-package-or-load "hoge") nil))
|
|
|
|
(subtest "funcall-with-cb"
|
|
(let ((cb (lambda (res)
|
|
(rplacd (car (last res)) (list "(ok from cb)"))
|
|
res)))
|
|
;; cons
|
|
(let ((app (lambda (env)
|
|
(declare (ignore env))
|
|
'(200 (:content-type "text/plain") ("ok")))))
|
|
(is (funcall-with-cb app (generate-env "/") cb)
|
|
'(200 (:content-type "text/plain") ("ok" "(ok from cb)"))))
|
|
;; function
|
|
(let* ((app (lambda (env)
|
|
(declare (ignore env))
|
|
(lambda (responder)
|
|
(funcall responder '(200 (:content-type "text/plain") ("ok"))))))
|
|
(cb-res (funcall-with-cb app (generate-env "/") cb)))
|
|
(is-type cb-res 'function)
|
|
(let (res)
|
|
(funcall cb-res (lambda (r) (setf res r)))
|
|
(is res '(200 (:content-type "text/plain") ("ok" "(ok from cb)")))))
|
|
;; otherwise
|
|
(let ((app (lambda (env)
|
|
(declare (ignore env))
|
|
1)))
|
|
(is (funcall-with-cb app (generate-env "/") cb) 1))))
|
|
|
|
(finalize)
|