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:
Bob 2021-10-17 17:12:28 -04:00 committed by GitHub
parent bf3b6d2dca
commit 8dad1fa473
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 61 additions and 1 deletions

View file

@ -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}}

View file

@ -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

View file

@ -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]

View 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))))

View 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))))