scopes/web: check client: dexador:get from clack server
This commit is contained in:
parent
9f1e1cc3ce
commit
cb9b9204b4
5 changed files with 34 additions and 7 deletions
|
@ -6,12 +6,14 @@
|
||||||
:version "0.0.1"
|
:version "0.0.1"
|
||||||
:homepage "https://www.cyberconcepts.org"
|
:homepage "https://www.cyberconcepts.org"
|
||||||
:description "Web client and server functionality."
|
:description "Web client and server functionality."
|
||||||
:depends-on (:alexandria :clack :com.inuoe.jzon :lack :log4cl :str
|
:depends-on (:alexandria :clack :com.inuoe.jzon :dexador :lack :log4cl :str
|
||||||
:scopes-core)
|
:scopes-core)
|
||||||
:components ((:file "web/server")
|
:components ((:file "web/client")
|
||||||
|
(:file "web/server")
|
||||||
(:file "util")
|
(:file "util")
|
||||||
(:file "testing" :depends-on ("util"))
|
(:file "testing" :depends-on ("util"))
|
||||||
(:file "test/test-web" :depends-on ("testing" "web/server")))
|
(:file "test/test-web"
|
||||||
|
:depends-on ("testing" "web/client" "web/server")))
|
||||||
:long-description "scopes/web: Web server and web/API/REST client."
|
:long-description "scopes/web: Web server and web/API/REST client."
|
||||||
:in-order-to ((test-op (test-op "scopes-web/test"))))
|
:in-order-to ((test-op (test-op "scopes-web/test"))))
|
||||||
|
|
||||||
|
|
|
@ -7,3 +7,5 @@
|
||||||
|
|
||||||
(make-instance 'server:config :parent *config*
|
(make-instance 'server:config :parent *config*
|
||||||
:port "8899")
|
:port "8899")
|
||||||
|
|
||||||
|
(make-instance 'client:config :parent *config*)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
(defpackage :scopes/test-web
|
(defpackage :scopes/test-web
|
||||||
(:use :common-lisp)
|
(:use :common-lisp)
|
||||||
(:local-nicknames (:config :scopes/config)
|
(:local-nicknames (:config :scopes/config)
|
||||||
|
(:client :scopes/web/client)
|
||||||
(:server :scopes/web/server)
|
(:server :scopes/web/server)
|
||||||
(:t :scopes/testing))
|
(:t :scopes/testing))
|
||||||
(:export #:run)
|
(:export #:run)
|
||||||
|
@ -17,12 +18,22 @@
|
||||||
(*config* nil)
|
(*config* nil)
|
||||||
(server:*listener* nil))
|
(server:*listener* nil))
|
||||||
(load (t:test-path "config-web" "etc"))
|
(load (t:test-path "config-web" "etc"))
|
||||||
(let ((cfg (car (config:children *config*))))
|
(let ((cfg (cadr (config:children *config*))))
|
||||||
(test-server-config cfg)
|
(test-server-config cfg)
|
||||||
(server:start cfg))
|
(server:start cfg))
|
||||||
(sleep 1)
|
(sleep 0.1)
|
||||||
|
(let ((cfg (car (config:children *config*))))
|
||||||
|
(test-client cfg))
|
||||||
|
(sleep 0.1)
|
||||||
(server:stop)
|
(server:stop)
|
||||||
(t:show-result)))
|
(t:show-result)))
|
||||||
|
|
||||||
(t:deftest test-server-config (cfg)
|
(t:deftest test-server-config (cfg)
|
||||||
(== (parse-integer (server:port cfg)) 8899))
|
(== (parse-integer (server:port cfg)) 8899))
|
||||||
|
|
||||||
|
(t:deftest test-client (cfg)
|
||||||
|
(== (client:url cfg) "http://localhost:8899")
|
||||||
|
;(print (dexador:get "https://github.com")))
|
||||||
|
;(print (dexador:get "http://127.0.0.1:8899")))
|
||||||
|
(print (client:url cfg))
|
||||||
|
(print (dexador:get (client:url cfg))))
|
||||||
|
|
12
web/client.lisp
Normal file
12
web/client.lisp
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
;;;; cl-scopes/web/client - web client functionality
|
||||||
|
|
||||||
|
(defpackage :scopes/web/client
|
||||||
|
(:use :common-lisp)
|
||||||
|
(:local-nicknames (:config :scopes/config))
|
||||||
|
(:export #:config #:url))
|
||||||
|
|
||||||
|
(in-package :scopes/web/client)
|
||||||
|
|
||||||
|
(defclass config (config:base)
|
||||||
|
((url :reader url :initarg :url :initform "http://localhost:8899")))
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
(defun start (cfg)
|
(defun start (cfg)
|
||||||
(setf *listener*
|
(setf *listener*
|
||||||
(clack:clackup #'app
|
(clack:clackup #'(lambda (env) (app env))
|
||||||
:port (parse-integer (port cfg))
|
:port (parse-integer (port cfg))
|
||||||
:address (address cfg))))
|
:address (address cfg))))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue