babashka/test/babashka/deps_test.clj
2021-07-05 00:05:48 +02:00

63 lines
1.9 KiB
Clojure

(ns babashka.deps-test
(:require
[babashka.test-utils :as test-utils]
[clojure.edn :as edn]
[clojure.test :as test :refer [deftest is testing]]))
(defn bb [& args]
(edn/read-string
{:readers *data-readers*
:eof nil}
(apply test-utils/bb nil (map str args))))
(deftest dependency-test (is (= #{:a :c :b} (bb "
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {com.stuartsierra/dependency {:mvn/version \"1.0.0\"}}})
(require '[com.stuartsierra.dependency :as dep])
(def g1 (-> (dep/graph)
(dep/depend :b :a)
(dep/depend :c :b)
(dep/depend :c :a)
(dep/depend :d :c)))
(dep/transitive-dependencies g1 :d)
"))))
(deftest clojure-test
(testing "-Stree prints to *out*"
(is (true? (bb "
(require '[babashka.deps :as deps])
(require '[clojure.string :as str])
(str/includes?
(with-out-str (babashka.deps/clojure [\"-Stree\"]))
\"org.clojure/clojure\")
"))))
(testing "-P does not exit babashka script"
(is (true? (bb "
(require '[babashka.deps :as deps])
(require '[clojure.string :as str])
(babashka.deps/clojure [\"-P\"])
true
"))))
(is (= "6\n" (test-utils/normalize (bb "
(require '[babashka.deps :as deps])
(require '[babashka.process :as p])
(-> (babashka.deps/clojure [\"-M\" \"-e\" \"(+ 1 2 3)\"] {:out :string})
(p/check)
:out)
"))))
(when-not test-utils/native?
(is (thrown-with-msg? Exception #"Option changed" (bb "
(require '[babashka.deps :as deps])
(babashka.deps/clojure [\"-Sresolve-tags\"])
"))))
(is (true? (bb "
(= 5 (:exit @(babashka.deps/clojure [] {:in \"(System/exit 5)\" :out :string})))")))
#_(testing "start from other directory"
(is (= {1 {:id 1}, 2 {:id 2}}
(edn/read-string (bb "
(:out @(babashka.deps/clojure [\"-M\" \"-e\" \"(require 'medley.core) (medley.core/index-by :id [{:id 1} {:id 2}])\"] {:out :string :dir \"test-resources/clojure-dir-test\"}))"))))))