babashka/test-resources/babashka/postgresql_test.clj
2020-04-29 14:50:25 +02:00

43 lines
1.1 KiB
Clojure

(ns babashka.postgres-test
(:require [clojure.test :as t :refer [deftest is]]
[next.jdbc :as jdbc]
[next.jdbc.sql :as sql]))
(def db {:dbtype "postgres"
:port 54322
:dbname "postgres"
:user "postgres"
:password "mysecretpassword"})
(defmethod clojure.test/report :begin-test-var [m]
(println "===" (-> m :var meta :name))
(println))
(defn wait-for-postgres []
(while
(not
(try (jdbc/execute! db ["select version()"])
(catch Exception e
(prn (ex-message e))
(Thread/sleep 100))))))
(deftest create-table-test
(is (jdbc/execute! db ["drop table if exists foo; create table foo ( foo text )"])))
(deftest insert-test
(is (sql/insert-multi! db :foo [:foo] [["foo"] ["bar"] ["baz"]])))
(deftest query-test
(let [results (jdbc/execute! db ["select * from foo"])]
(is (= '[{:foo/foo "foo"} {:foo/foo "bar"} {:foo/foo "baz"}]
results))))
(defn test-ns-hook []
(wait-for-postgres)
(create-table-test)
(insert-test)
(query-test))
(let [{:keys [:fail :error]}
(t/run-tests)]
(System/exit (+ fail error)))