Skip to content

Commit 1f99736

Browse files
committed
Wait for test-server ready before running tests
1 parent 4a86cd0 commit 1f99736

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

script/test_server.clj

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
(ns test-server
22
(:require [babashka.cli :as cli]
33
[babashka.http-server :as server]
4+
[babashka.http-client :as client]
45
[lread.status-line :as status]))
56

67
(def cli-spec {:help {:desc "This usage help" :alias :h}
@@ -31,5 +32,19 @@
3132
(if (:help opts)
3233
(usage-help)
3334
(do
34-
(status/line :detail "Static dir: %s" (:dir opts))
35-
(server/exec opts)))))
35+
(status/line :detail "Test server static dir: %s" (:dir opts))
36+
(let [server (future (server/exec opts))
37+
deadline (+ (System/currentTimeMillis) 15000)
38+
test-url (str "http://localhost:" (:port opts)) ]
39+
(loop []
40+
(let [resp (try (client/get test-url)
41+
(catch Throwable _ :not-ready))]
42+
(when (= :not-ready resp)
43+
(if (< (System/currentTimeMillis) deadline)
44+
(do
45+
(println "- waiting for test-server to be ready" test-url)
46+
(Thread/sleep 1000)
47+
(recur))
48+
(throw (ex-info "Timed out waiting for ready test server" {}))))))
49+
(println "Test server ready")
50+
@server)))))

0 commit comments

Comments
 (0)