- in tests, delete temp output files that would prevent overwrite - in tests, change 'non-empty' files to be empty files (since non-empty is no longer necessary) - in hato test, replace nghttp2 with httpbin, since httpbin uses http/2 by default now, and to benefit from httpbin 'flaky' test
37 lines
1.7 KiB
Clojure
37 lines
1.7 KiB
Clojure
(ns babashka.uberscript-test
|
|
(:require
|
|
[babashka.test-utils :as tu]
|
|
[clojure.string :as str]
|
|
[clojure.test :as t :refer [deftest is]]))
|
|
|
|
(defn deleted-temp-file []
|
|
(doto (java.io.File/createTempFile "uberscript" ".clj")
|
|
.deleteOnExit
|
|
.delete)) ; delete file to prevent overwrite failure
|
|
|
|
(deftest basic-test
|
|
(let [tmp-file (deleted-temp-file)]
|
|
(is (empty? (tu/bb nil "--prn" "--classpath" "test-resources/babashka/src_for_classpath_test" "uberscript" (.getPath tmp-file) "-m" "my.main")))
|
|
(is (= "(\"1\" \"2\" \"3\" \"4\")\n"
|
|
(tu/bb nil "--prn" "--file" (.getPath tmp-file) "1" "2" "3" "4")))))
|
|
|
|
(when-not (= "aarch64" (System/getenv "BABASHKA_ARCH"))
|
|
(deftest advanced-test
|
|
(let [tmp-file (deleted-temp-file)]
|
|
;; we test:
|
|
;; order of namespaces
|
|
;; reader error for ::a/foo is swallowed
|
|
;; pod namespaces can be loaded without a problem
|
|
;; resulting program can be executed
|
|
(is (empty? (tu/bb nil "--prn" "--classpath" "test-resources/babashka/uberscript/src" "uberscript" (.getPath tmp-file) "-m" "my.main")))
|
|
(is (= ":clojure.string/foo\ntrue\n(\"1\" \"2\" \"3\" \"4\")\n"
|
|
(tu/bb nil "--prn" "--file" (.getPath tmp-file) "1" "2" "3" "4"))))))
|
|
|
|
(deftest pods-test
|
|
(let [tmp-file (deleted-temp-file)]
|
|
(tu/with-config (pr-str '{:paths ["test-resources/babashka/uberscript/src"]
|
|
:pods {org.babashka/go-sqlite3 {:version "0.1.0"}}})
|
|
(is (empty? (tu/bb nil "--prn" "uberscript" (.getPath tmp-file) "-m" "my.main-pod")))
|
|
(is (= 1 (count (re-seq #"load-pod 'org.babashka/go-sqlite3"
|
|
(str/join (str/split-lines (slurp tmp-file))))))))
|
|
(is (str/includes? (tu/bb nil "--prn" "--file" (.getPath tmp-file)) "3"))))
|