scopes/web: check client: dexador:get from clack server

This commit is contained in:
Helmut Merz 2024-06-17 21:38:15 +02:00
parent 9f1e1cc3ce
commit cb9b9204b4
5 changed files with 34 additions and 7 deletions

View file

@ -6,12 +6,14 @@
:version "0.0.1"
:homepage "https://www.cyberconcepts.org"
: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)
:components ((:file "web/server")
:components ((:file "web/client")
(:file "web/server")
(:file "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."
:in-order-to ((test-op (test-op "scopes-web/test"))))

View file

@ -7,3 +7,5 @@
(make-instance 'server:config :parent *config*
:port "8899")
(make-instance 'client:config :parent *config*)

View file

@ -3,6 +3,7 @@
(defpackage :scopes/test-web
(:use :common-lisp)
(:local-nicknames (:config :scopes/config)
(:client :scopes/web/client)
(:server :scopes/web/server)
(:t :scopes/testing))
(:export #:run)
@ -17,12 +18,22 @@
(*config* nil)
(server:*listener* nil))
(load (t:test-path "config-web" "etc"))
(let ((cfg (car (config:children *config*))))
(let ((cfg (cadr (config:children *config*))))
(test-server-config cfg)
(server:start cfg))
(sleep 1)
(sleep 0.1)
(let ((cfg (car (config:children *config*))))
(test-client cfg))
(sleep 0.1)
(server:stop)
(t:show-result)))
(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
View 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")))

View file

@ -24,7 +24,7 @@
(defun start (cfg)
(setf *listener*
(clack:clackup #'app
(clack:clackup #'(lambda (env) (app env))
:port (parse-integer (port cfg))
:address (address cfg))))