ruuter and clj-digest tests (#1034)
* add lib tests for using ruuter with built-in httpkit server * just to be safe, add a timeout to ruuter's HTTP requests * add tests for clj-commons.digest * add newly-tested libraries to the library list * undo paren moves I missed that were done by parinfer * typo
This commit is contained in:
parent
bf3b6d2dca
commit
8dad1fa473
5 changed files with 61 additions and 1 deletions
4
deps.edn
4
deps.edn
|
|
@ -90,7 +90,9 @@
|
|||
clj-commons/multigrep {:mvn/version "0.5.0"}
|
||||
amperity/vault-clj {:mvn/version "1.0.4"}
|
||||
java-http-clj/java-http-clj {:mvn/version "0.4.3"}
|
||||
com.stuartsierra/component {:mvn/version "1.0.0"}}
|
||||
com.stuartsierra/component {:mvn/version "1.0.0"}
|
||||
org.clojars.askonomm/ruuter {:mvn/version "1.2.2"}
|
||||
org.clj-commons/digest {:mvn/version "1.4.100"}}
|
||||
:classpath-overrides {org.clojure/clojure nil
|
||||
org.clojure/spec.alpha nil
|
||||
org.clojure/core.specs.alpha nil}}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ The following libraries and projects are known to work with babashka.
|
|||
- [java-http-clj](#java-http-clj)
|
||||
- [component](#component)
|
||||
- [minimallist](#minimallist)
|
||||
- [ruuter](#ruuter)
|
||||
- [clj-commons.digest](#clj-commonsdigest)
|
||||
- [Pods](#pods)
|
||||
- [Projects](#projects-1)
|
||||
- [babashka-test-action](#babashka-test-action)
|
||||
|
|
@ -716,6 +718,14 @@ Example partially borrowed from [minimallist's cljdoc](https://cljdoc.org/d/mini
|
|||
;(tcg/sample (mg/gen (h/fn int?)))
|
||||
```
|
||||
|
||||
### [ruuter](https://github.com/askonomm/ruuter)
|
||||
|
||||
A zero-dependency router where each route is a map. Works with the httpkit server built into babashka.
|
||||
|
||||
### [clj-commons.digest](https://github.com/clj-commons/digest)
|
||||
|
||||
A message digest library, providing functions for MD5, SHA-1, SHA-256, etc.
|
||||
|
||||
## Pods
|
||||
|
||||
[Babashka pods](https://github.com/babashka/babashka.pods) are programs that can
|
||||
|
|
|
|||
|
|
@ -256,6 +256,10 @@
|
|||
|
||||
(test-namespaces 'component.component-test)
|
||||
|
||||
(test-namespaces 'ruuter.core-test)
|
||||
|
||||
(test-namespaces 'clj-commons.digest-test)
|
||||
|
||||
;;;; final exit code
|
||||
|
||||
(let [{:keys [:test :fail :error] :as m} @status]
|
||||
|
|
|
|||
18
test-resources/lib_tests/clj_commons/digest_test.clj
Normal file
18
test-resources/lib_tests/clj_commons/digest_test.clj
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
(ns clj-commons.digest-test
|
||||
(:require [clj-commons.digest]
|
||||
[clojure.java.io :as io]
|
||||
[clojure.test :refer [deftest is]]))
|
||||
|
||||
(def examples
|
||||
{"clojure" {'sha-256 "4f3ea34e0a3a6196a18ec24b51c02b41d5f15bd04b4a94aa29e4f6badba0f5b0"
|
||||
'md5 "32c0d97f82a20e67c6d184620f6bd322"
|
||||
'sha-1 "49c91cf925f70570a72cf406e9b112ce9e32250c"}
|
||||
nil {'sha-256 nil 'md5 nil 'sha-1 nil}
|
||||
(io/file "test-resources/babashka/empty.clj") {'sha-256 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
'md5 "d41d8cd98f00b204e9800998ecf8427e"
|
||||
'sha-1 "da39a3ee5e6b4b0d3255bfef95601890afd80709"}})
|
||||
|
||||
(deftest digest-examples-test
|
||||
(doseq [[input algo-result] examples
|
||||
[algo expected] algo-result]
|
||||
(is (= ((ns-resolve 'clj-commons.digest algo) input) expected))))
|
||||
26
test-resources/lib_tests/ruuter/core_test.clj
Normal file
26
test-resources/lib_tests/ruuter/core_test.clj
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
(ns ruuter.core-test
|
||||
(:require [clojure.test :refer [deftest is testing]]
|
||||
[org.httpkit.client :as client]
|
||||
[org.httpkit.server :as server]
|
||||
[ruuter.core :as ruuter]))
|
||||
|
||||
(def routes [{:path "/"
|
||||
:method :get
|
||||
:response {:status 200
|
||||
:body "Hi there!"}}
|
||||
{:path "/hello/:who"
|
||||
:method :get
|
||||
:response (fn [req]
|
||||
{:status 200
|
||||
:body (str "Hello, " (:who (:params req)))})}])
|
||||
|
||||
(def port 8080)
|
||||
|
||||
(deftest ruuter-with-httpkit-test
|
||||
(let [stop-server (server/run-server #(ruuter/route routes %) {:port port})
|
||||
fetch #(:body (deref (client/get (str "http://localhost:" port %) {:as :text}) 500 nil))
|
||||
root-result (fetch "/")
|
||||
hello-result (fetch "/hello/babashka")]
|
||||
(stop-server)
|
||||
(is (= "Hi there!" root-result))
|
||||
(is (= "Hello, babashka" hello-result))))
|
||||
Loading…
Reference in a new issue