63 lines
1.9 KiB
Clojure
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\"}))"))))))
|