41 lines
2 KiB
Clojure
41 lines
2 KiB
Clojure
(ns babashka.postgresql-test
|
|
(:require [babashka.test-utils :as tu]
|
|
[clojure.test :as t :refer [deftest is]])
|
|
(:import [com.opentable.db.postgres.embedded EmbeddedPostgres]))
|
|
|
|
(def db {:dbtype "embedded-postgres"
|
|
:port 54322})
|
|
|
|
(defmethod clojure.test/report :begin-test-var [m]
|
|
(println "===" (-> m :var meta :name))
|
|
(println))
|
|
|
|
(defn jdbc-feature-flag? []
|
|
(= (System/getenv "BABASHKA_FEATURE_JDBC") "true"))
|
|
|
|
(defn pg-feature-flag? []
|
|
(= (System/getenv "BABASHKA_FEATURE_POSTGRESQL") "true"))
|
|
|
|
(deftest postgresql-test
|
|
(when (= "embedded-postgres" (:dbtype db))
|
|
(if (and tu/jvm? (jdbc-feature-flag?) (pg-feature-flag?))
|
|
(let [pg-db-instance (-> (EmbeddedPostgres/builder)
|
|
(.setPort (:port db))
|
|
.start
|
|
.getPostgresDatabase
|
|
.getConnection)
|
|
bb-tests (tu/bb nil
|
|
"-e" "(require '[clojure.test :as t :refer [deftest is]])"
|
|
"-e" "(require '[next.jdbc :as jdbc])"
|
|
"-e" "(require '[next.jdbc.sql :as sql])"
|
|
"-e" "(load-file (io/file \"test-resources\" \"babashka\" \"embedded_pg_tests.clj\"))"
|
|
"-e" "(require '[embedded-pg-tests :as em-pg])"
|
|
"-e" "(def db {:dbtype \"postgres\" :port 54322 :user \"postgres\" :dbname \"postgres\"})"
|
|
"-e" "(def expected-query-res [{:foo/foo \"foo\"} {:foo/foo \"bar\"} {:foo/foo \"baz\"}])"
|
|
"-e" "(em-pg/wait-for-postgres db)"
|
|
"-e" "(em-pg/create-table-test db)"
|
|
"-e" "(em-pg/insert-test db)"
|
|
"-e" "(is (= expected-query-res (em-pg/query-test db)))")]
|
|
(is (= bb-tests "true\n"))
|
|
(.close pg-db-instance))
|
|
(println "Did not run the pg-tests. Turn on the feature flags to run these tests."))))
|