-
-
Notifications
You must be signed in to change notification settings - Fork 86
/
builder.lisp
42 lines (33 loc) · 1014 Bytes
/
builder.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(in-package :cl-user)
(defpackage t.clack.builder
(:use :cl
:cl-test-more
:clack.builder
:clack.middleware))
(in-package :t.clack.builder)
;; initialize
(defvar app
(lambda (env)
(declare (ignore env))
'(200 (:content-type "text/html") "ok from app")))
(defmethod call ((this <middleware>) env)
(if (string= "/private" (getf env :path-info))
'(403 nil ("forbidden"))
(call-next this env)))
(defclass <simple-middleware> (<middleware>) ()
(:documentation "Middleware for unit testing."))
(defclass <simple-middleware2> (<middleware>)
((one :initarg :one)
(two :initarg :two))
(:documentation "Middleware with some slots."))
;; Tests
(plan 3)
(is-type (builder <simple-middleware> app) 'function "builder")
(is-type (builder-lazy <simple-middleware> app) 'function "builder-lazy")
(is-type (builder
(<simple-middleware2>
:one "1" :two "2")
app)
'function
"builder with args")
(finalize)