diff --git a/test-resources/babashka/exec_test.clj b/test-resources/babashka/exec_test.clj new file mode 100644 index 00000000..6eca718f --- /dev/null +++ b/test-resources/babashka/exec_test.clj @@ -0,0 +1,7 @@ +(ns babashka.exec-test + {:org.babashka/cli {:coerce {:foo []}}}) + +(defn exec-test + {:org.babashka/cli {:coerce {:bar :keyword}}} + [m] + (prn m)) diff --git a/test/babashka/exec_test.clj b/test/babashka/exec_test.clj index b3626a0a..4493e356 100644 --- a/test/babashka/exec_test.clj +++ b/test/babashka/exec_test.clj @@ -15,8 +15,22 @@ (edn/read-string (bb "-x" "cheshire.core/generate-string" "--foo" "1")) true)))) -(deftest tag-test +(deftest tasks-exec-test (u/with-config "{:deps {} :tasks {foo (exec 'clojure.core/prn)}}" - (is (= {:dude 1} (edn/read-string (bb "run" "foo" "--dude" "1")))))) + (is (= {:dude 1} (edn/read-string (bb "run" "foo" "--dude" "1"))))) + (u/with-config + "{:deps {} + :tasks {foo (exec 'clojure.core/prn)}}" + (is (= {:dude 1} (edn/read-string (bb "run" "foo" "--dude" "1"))))) + (u/with-config + "{:deps {} + :tasks {foo {:org.babashka/cli {:coerce {:dude []}} + :task (exec 'clojure.core/prn)}}}" + (is (= {:dude [1]} (edn/read-string (bb "run" "foo" "--dude" "1"))))) + (u/with-config + "{:deps {} + :tasks {foo {:task (exec 'babashka.exec-test/exec-test)}}}" + (is (= {:foo [1], :bar :yeah} + (edn/read-string (bb "-cp" "test-resources" "run" "foo" "--foo" "1" "--bar" "yeah"))))))