diff --git a/.circleci/config.yml b/.circleci/config.yml index f38fde83..36c49462 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,7 +22,7 @@ jobs: git submodule update - restore_cache: keys: - - v1-dependencies-{{ checksum "project.clj" }} + - v1-dependencies-{{ checksum "project.clj" }}-{{ checksum "deps.edn" }} # fallback to using the latest cache if no exact match is found - v1-dependencies- - run: @@ -63,7 +63,7 @@ jobs: - save_cache: paths: - ~/.m2 - key: v1-dependencies-{{ checksum "project.clj" }} + key: v1-dependencies-{{ checksum "project.clj" }}-{{ checksum "deps.edn" }} linux: docker: - image: circleci/clojure:lein-2.9.1 diff --git a/deps.edn b/deps.edn index 9e4879b8..dbbc49eb 100644 --- a/deps.edn +++ b/deps.edn @@ -31,4 +31,28 @@ :jvm-opts ["-Djdk.attach.allowAttachSelf"] :main-opts ["-m" "babashka.profile"]} :lib-tests - {:extra-deps {minimallist {:mvn/version "0.0.1"}}}}} + {:extra-deps {clj-http-lite + {:git/url "https://github.com/babashka/clj-http-lite" + :sha "f44ebe45446f0f44f2b73761d102af3da6d0a13e"} + spartan.spec {:git/url "https://github.com/borkdude/spartan.spec" + :sha "16f7eec4b6589c77c96c9fcf989f78fffcee7c4c"} + regal {:git/url "https://github.com/lambdaisland/regal" + :sha "b059fdb06d5586a9a04c27e7b011c467ad8546db"} + medley {:git/url "https://github.com/weavejester/medley" + :sha "a4e5fb5383f5c0d83cb2d005181a35b76d8a136d"} + babasha.curl {:local/root "babashka.curl"} + cprop {:mvn/version "0.1.16"} + comb {:mvn/version "0.1.1"} + mvxcvi/arrangement {:mvn/version "1.2.0"} + org.clojure/data.zip {:mvn/version "1.0.0"} + clojure-csv {:mvn/version "2.0.2"} + org.clojure/math.combinatorics {:mvn/version "0.1.6"} + doric {:mvn/version "0.9.0"} + cljc.java-time + {:git/url "https://github.com/henryw374/cljc.java-time.git" + :sha "e3d184b78e933322b3fcaa6ca66cbb8f42a6b35c"} + camel-snake-kebab {:mvn/version "0.4.1"} + aero {:mvn/version "1.1.6"} + org.clojure/data.generators {:mvn/version "1.0.0"} + honeysql {:mvn/version "1.0.444"} + minimallist {:mvn/version "0.0.1"}}}}} diff --git a/script/lib_tests/aero_test b/script/lib_tests/aero_test deleted file mode 100755 index 7df99d3a..00000000 --- a/script/lib_tests/aero_test +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -export BABASHKA_CLASSPATH -BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {aero {:mvn/version "1.1.6"}}}' -Spath) - -$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e " -(require '[aero.core-test]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'aero.core-test)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/arrangement_test b/script/lib_tests/arrangement_test deleted file mode 100755 index fa93438f..00000000 --- a/script/lib_tests/arrangement_test +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {mvxcvi/arrangement {:mvn/version "1.2.0"}}}' -Spath) - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -e "(require '[arrangement.core :as order]) (sort order/rank ['a false 2 :b nil 3.14159 \"c\" true \d [3 2] #{:one :two} [3 1 2] #{:three}])" diff --git a/script/lib_tests/babashka_curl_test b/script/lib_tests/babashka_curl_test deleted file mode 100755 index 84f60151..00000000 --- a/script/lib_tests/babashka_curl_test +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {babasha.curl {:local/root "babashka.curl"}}}' -Spath) - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -e " -(require '[babashka.curl :as curl] :reload-all) - -(prn (:status (curl/get \"https://www.clojure.org\"))) - -(prn (:status (curl/get \"https://postman-echo.com/get?foo1=bar1&foo2=bar2\"))) - -(prn (:status (curl/post \"https://postman-echo.com/post\"))) - -(prn (:status (curl/post \"https://postman-echo.com/post\" - {:body (json/generate-string {:a 1}) - :headers {\"X-Hasura-Role\" \"admin\"} - :content-type :json - :accept :json}))) - -(prn (:status (curl/put \"https://postman-echo.com/put\" - {:body (json/generate-string {:a 1}) - :headers {\"X-Hasura-Role\" \"admin\"} - :content-type :json - :accept :json}))) -" diff --git a/script/lib_tests/camel_snake_kebab_test b/script/lib_tests/camel_snake_kebab_test deleted file mode 100755 index af1ee5d2..00000000 --- a/script/lib_tests/camel_snake_kebab_test +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -export BABASHKA_CLASSPATH -BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {camel-snake-kebab {:mvn/version "0.4.1"}}}' -Spath) - -$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e " -(require '[camel-snake-kebab.core-test]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'camel-snake-kebab.core-test)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/clj_http_lite_test b/script/lib_tests/clj_http_lite_test deleted file mode 100755 index b4769261..00000000 --- a/script/lib_tests/clj_http_lite_test +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {clj-http-lite {:git/url "https://github.com/babashka/clj-http-lite" :sha "f44ebe45446f0f44f2b73761d102af3da6d0a13e"}}}' -Spath) - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -e " -(require '[clj-http.lite.client :as client]) - -(prn (:status (client/get \"https://www.clojure.org\"))) - -(prn (:status (client/get \"https://postman-echo.com/get?foo1=bar1&foo2=bar2\"))) - -(prn (:status (client/post \"https://postman-echo.com/post\"))) - -(prn (:status (client/post \"https://postman-echo.com/post\" - {:body (json/generate-string {:a 1}) - :headers {\"X-Hasura-Role\" \"admin\"} - :content-type :json - :accept :json}))) - -(prn (:status (client/put \"https://postman-echo.com/put\" - {:body (json/generate-string {:a 1}) - :headers {\"X-Hasura-Role\" \"admin\"} - :content-type :json - :accept :json}))) -" diff --git a/script/lib_tests/clj_yaml_test b/script/lib_tests/clj_yaml_test deleted file mode 100755 index a20a5279..00000000 --- a/script/lib_tests/clj_yaml_test +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -cp test-resources/lib_tests -e " -(require '[clojure.java.io :as io]) -(require '[clj-yaml.core-test]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clj-yaml.core-test)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/cljc_java_time_test b/script/lib_tests/cljc_java_time_test deleted file mode 100755 index e1f14e4f..00000000 --- a/script/lib_tests/cljc_java_time_test +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -export BABASHKA_CLASSPATH -BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {cljc.java-time {:git/url "https://github.com/henryw374/cljc.java-time.git" :sha "e3d184b78e933322b3fcaa6ca66cbb8f42a6b35c"}}}' -Spath)" - -$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e " -(require '[clojure.java.io :as io]) -(require '[cljc.java-time-test]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'cljc.java-time-test)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/clojure_csv_test b/script/lib_tests/clojure_csv_test deleted file mode 100755 index c9b6adf0..00000000 --- a/script/lib_tests/clojure_csv_test +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {clojure-csv {:mvn/version "RELEASE"}}}' -Spath)" - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -e " -(require '[clojure-csv.core :as csv]) -(prn (csv/write-csv (csv/parse-csv \"a,b,c\n1,2,3\"))) -" diff --git a/script/lib_tests/clojure_data_csv_test b/script/lib_tests/clojure_data_csv_test deleted file mode 100755 index c229ab92..00000000 --- a/script/lib_tests/clojure_data_csv_test +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -cp test-resources/lib_tests -e " -(require '[clojure.java.io :as io]) -(require '[clojure.data.csv-test]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clojure.data.csv-test)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/clojure_data_generators_test b/script/lib_tests/clojure_data_generators_test deleted file mode 100755 index 5e34432d..00000000 --- a/script/lib_tests/clojure_data_generators_test +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -export BABASHKA_CLASSPATH -BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {org.clojure/data.generators {:mvn/version "1.0.0"}}}' -Spath) - -$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e " -(require '[clojure.data.generators-test]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clojure.data.generators-test)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/clojure_data_zip_test b/script/lib_tests/clojure_data_zip_test deleted file mode 100755 index 3cbbfb6b..00000000 --- a/script/lib_tests/clojure_data_zip_test +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {org.clojure/data.zip {:mvn/version "1.0.0"}}}' -Spath)" - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD --verbose " -(require '[clojure.data.xml :as xml]) -(require '[clojure.zip :as zip]) -(require '[clojure.data.zip.xml :refer [text attr attr= xml-> xml1-> text=]]) - -(def data (str \"\" - \" \" - \" \" - \"\")) - -;(prn :data data) -(let [xml (zip/xml-zip (xml/parse (java.io.StringReader. data)))] - ;(prn :xml xml) - (prn :alice-is-a (xml1-> xml :character [(attr= :name \"alice\")] (attr :type))) - (prn :animal-is-called (xml1-> xml :character [(attr= :type \"animal\")] (attr :name)))) -" diff --git a/script/lib_tests/comb_test b/script/lib_tests/comb_test deleted file mode 100755 index 3e6e88df..00000000 --- a/script/lib_tests/comb_test +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {comb {:mvn/version "0.1.1"}}}') - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - - -$BB_CMD ' -(ns foo (:require [comb.template :as template])) -(prn (template/eval "<% (dotimes [x 3] %>foo<% ) %>")) -(prn (template/eval "Hello <%= name %>" {:name "Alice"})) -(def hello - (template/fn [name] "Hello <%= name %>")) -(prn (hello "Alice")) -' diff --git a/script/lib_tests/combinatorics_test b/script/lib_tests/combinatorics_test deleted file mode 100755 index d71a9c3d..00000000 --- a/script/lib_tests/combinatorics_test +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {org.clojure/math.combinatorics {:mvn/version "0.1.6"}}}' -Spath) - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -cp "test-resources/lib_tests:$BABASHKA_CLASSPATH" -e " -(require '[clojure.math.test-combinatorics]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clojure.math.test-combinatorics)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/cprop_test b/script/lib_tests/cprop_test deleted file mode 100755 index 71ef87bd..00000000 --- a/script/lib_tests/cprop_test +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {cprop {:mvn/version "0.1.16"}}}') - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - - -CPROP_ENV="hello" $BB_CMD " -(require '[cprop.core :refer [load-config]]) -(require '[cprop.source :refer [from-system-props from-env]]) -(println (:cprop-env (from-env))) -" diff --git a/script/lib_tests/deps_clj_test b/script/lib_tests/deps_clj_test deleted file mode 100755 index d23ae8b6..00000000 --- a/script/lib_tests/deps_clj_test +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -curl -sL https://raw.githubusercontent.com/borkdude/deps.clj/master/deps.clj -o deps_test.clj -chmod +x deps_test.clj -$BB_CMD deps_test.clj -Sdescribe -rm deps_test.clj - diff --git a/script/lib_tests/doric_test b/script/lib_tests/doric_test deleted file mode 100755 index 9838c099..00000000 --- a/script/lib_tests/doric_test +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH -BABASHKA_CLASSPATH="$(clojure -Spath -Sdeps '{:deps {doric {:mvn/version "0.9.0"}}}')" - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e " -(require '[doric.test.core]) -(require '[clojure.test :as t]) -(let [{:keys [:test :pass :fail :error]} (t/run-tests 'doric.test.core)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/honeysql_test b/script/lib_tests/honeysql_test deleted file mode 100755 index cafadff3..00000000 --- a/script/lib_tests/honeysql_test +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -export BABASHKA_CLASSPATH -BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {honeysql {:mvn/version "1.0.444"}}}' -Spath) - -$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e " -(require '[honeysql.core-test]) -(require '[honeysql.format-test]) -(require '[clojure.test :as t]) - -(let [{:keys [:test :pass :fail :error]} - (t/run-tests 'honeysql.core-test 'honeysql.format-test)] - (when-not (pos? test) - (System/exit 1)) - (System/exit (+ fail error))) -" diff --git a/script/lib_tests/medley_test b/script/lib_tests/medley_test deleted file mode 100755 index 9bdd30fd..00000000 --- a/script/lib_tests/medley_test +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {medley {:git/url "https://github.com/weavejester/medley" :sha "a4e5fb5383f5c0d83cb2d005181a35b76d8a136d"}}}' -Spath)" - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD " -(require '[medley.core :refer [index-by random-uuid]]) -(prn (index-by :id [{:id 1} {:id 2}])) -(prn (random-uuid)) -" diff --git a/script/lib_tests/regal_test b/script/lib_tests/regal_test deleted file mode 100755 index 4073c9e6..00000000 --- a/script/lib_tests/regal_test +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {regal {:git/url "https://github.com/lambdaisland/regal" :sha "b059fdb06d5586a9a04c27e7b011c467ad8546db"}}}' -Spath)" - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD " -(require '[lambdaisland.regal :as regal]) -(def r [:cat - [:+ [:class [\a \z]]] - \"=\" - [:+ [:not \=]]]) - -(prn (regal/regex r)) -(prn (re-matches (regal/regex r) \"foo=bar\")) -" diff --git a/script/lib_tests/spartan_spec_test b/script/lib_tests/spartan_spec_test deleted file mode 100755 index 0100ca83..00000000 --- a/script/lib_tests/spartan_spec_test +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -set -eo pipefail - -export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {spartan.spec {:git/url "https://github.com/borkdude/spartan.spec" :sha "16f7eec4b6589c77c96c9fcf989f78fffcee7c4c"}}}' -Spath) - -if [ "$BABASHKA_TEST_ENV" = "native" ]; then - BB_CMD="./bb" -else - BB_CMD="lein bb" -fi - -$BB_CMD -e " -(time (require '[spartan.spec :as s])) -(time (s/explain (s/cat :i int? :s string?) [1 :foo])) -(time (s/conform (s/cat :i int? :s string?) [1 \"foo\"])) -" diff --git a/script/run_lib_tests b/script/run_lib_tests index 1bc97cb5..c91c845c 100755 --- a/script/run_lib_tests +++ b/script/run_lib_tests @@ -8,24 +8,4 @@ then export PATH=$GRAALVM_HOME/bin:$PATH fi -script/lib_tests/clj_http_lite_test -script/lib_tests/deps_clj_test -script/lib_tests/spartan_spec_test -script/lib_tests/clojure_csv_test -script/lib_tests/regal_test -script/lib_tests/medley_test -script/lib_tests/babashka_curl_test -script/lib_tests/cprop_test -script/lib_tests/comb_test -script/lib_tests/arrangement_test -script/lib_tests/clj_yaml_test -script/lib_tests/clojure_data_csv_test -script/lib_tests/combinatorics_test -script/lib_tests/doric_test -script/lib_tests/clojure_data_zip_test -script/lib_tests/cljc_java_time_test -script/lib_tests/camel_snake_kebab_test -script/lib_tests/aero_test -script/lib_tests/clojure_data_generators_test -script/lib_tests/honeysql_test script/lib_tests/run_all_libtests diff --git a/test-resources/lib_tests/babashka/run_all_libtests.clj b/test-resources/lib_tests/babashka/run_all_libtests.clj index 518c9716..e802528e 100644 --- a/test-resources/lib_tests/babashka/run_all_libtests.clj +++ b/test-resources/lib_tests/babashka/run_all_libtests.clj @@ -1,20 +1,182 @@ (ns babashka.run-all-libtests - (:require [clojure.test :as t])) + (:require [clojure.test :as t] + [clojure.java.io :as io])) (def status (atom {})) (defn test-namespaces [& namespaces] + (doseq [ns namespaces] + (require ns)) (let [m (apply t/run-tests namespaces)] (swap! status (fn [status] - (merge-with + status m))))) + (merge-with + status (dissoc m :type)))))) -;;;; Minimallist +;;;; clj-http-lite -(require '[minimallist.core-test]) +(require '[clj-http.lite.client :as client]) +(require '[cheshire.core :as json]) + +(prn (:status (client/get "https://www.clojure.org"))) + +(prn (:status (client/get "https://postman-echo.com/get?foo1=bar1&foo2=bar2"))) + +(prn (:status (client/post "https://postman-echo.com/post"))) + +(prn (:status (client/post "https://postman-echo.com/post" + {:body (json/generate-string {:a 1}) + :headers {"X-Hasura-Role" "admin"} + :content-type :json + :accept :json}))) + +(prn (:status (client/put "https://postman-echo.com/put" + {:body (json/generate-string {:a 1}) + :headers {"X-Hasura-Role" "admin"} + :content-type :json + :accept :json}))) + +;;;; spartan.spec + +(time (require '[spartan.spec :as s])) +(require '[spartan.spec :as s]) +(time (s/explain (s/cat :i int? :s string?) [1 :foo])) +(time (s/conform (s/cat :i int? :s string?) [1 "foo"])) + +;;;; regal + +(require '[lambdaisland.regal :as regal]) +(def r [:cat + [:+ [:class [\a \z]]] + "=" + [:+ [:not \=]]]) + +(prn (regal/regex r)) +(prn (re-matches (regal/regex r) "foo=bar")) + +;;;; medley + +(require '[medley.core :refer [index-by random-uuid]]) +(prn (index-by :id [{:id 1} {:id 2}])) +(prn (random-uuid)) + +;;;; babashka.curl + +(require '[babashka.curl :as curl] :reload-all) + +(prn (:status (curl/get "https://www.clojure.org"))) + +(prn (:status (curl/get "https://postman-echo.com/get?foo1=bar1&foo2=bar2"))) + +(prn (:status (curl/post "https://postman-echo.com/post"))) + +(prn (:status (curl/post "https://postman-echo.com/post" + {:body (json/generate-string {:a 1}) + :headers {"X-Hasura-Role" "admin"} + :content-type :json + :accept :json}))) + +(prn (:status (curl/put "https://postman-echo.com/put" + {:body (json/generate-string {:a 1}) + :headers {"X-Hasura-Role" "admin"} + :content-type :json + :accept :json}))) + + +;;;; cprop + +(require '[cprop.core]) +(require '[cprop.source :refer [from-env]]) +(println (:cprop-env (from-env))) + +;;;; comb + +(require '[comb.template :as template]) +(prn (template/eval "<% (dotimes [x 3] %>foo<% ) %>")) +(prn (template/eval "Hello <%= name %>" {:name "Alice"})) +(def hello + (template/fn [name] "Hello <%= name %>")) +(prn (hello "Alice")) + +;;;; arrangement + +(require '[arrangement.core :as order]) +(prn (sort order/rank ['a false 2 :b nil 3.14159 + "c" true \d [3 2] #{:one :two} + [3 1 2] #{:three}])) + +;;;; clj-yaml + +(test-namespaces 'clj-yaml.core-test) + +;;;; clojure-csv + +(require '[clojure-csv.core :as csv]) +;; TODO: convert to test +(prn (csv/write-csv (csv/parse-csv "a,b,c\n1,2,3"))) + +;;;; clojure.data.zip + +(require '[clojure.data.xml :as xml]) +(require '[clojure.zip :as zip]) +(require '[clojure.data.zip.xml :refer [attr attr= xml1->]]) + +(def data (str "" + " " + " " + "")) + +;; TODO: convert to test +(let [xml (zip/xml-zip (xml/parse (java.io.StringReader. data)))] + ;(prn :xml xml) + (prn :alice-is-a (xml1-> xml :character [(attr= :name "alice")] (attr :type))) + (prn :animal-is-called (xml1-> xml :character [(attr= :type "animal")] (attr :name)))) + +;;;; clojure.data.csv + +(test-namespaces 'clojure.data.csv-test) + +;;;; clojure.math.combinatorics + +(test-namespaces 'clojure.math.test-combinatorics) + +;;;; deps.clj + +(spit "deps_test.clj" + (:body (curl/get "https://raw.githubusercontent.com/borkdude/deps.clj/master/deps.clj"))) + +(binding [*command-line-args* ["-Sdescribe"]] + (load-file "deps_test.clj")) + +(.delete (io/file "deps_test.clj")) + +;;;; doric + +(test-namespaces 'doric.test.core) + +;;;; cljc-java-time + +(test-namespaces 'cljc.java-time-test) + +;;;; camel-snake-kebab + +(test-namespaces 'camel-snake-kebab.core-test) + +;;;; aero + +(test-namespaces 'aero.core-test) + +;;;; clojure.data.generators + +(test-namespaces 'clojure.data.generators-test) + +;;;; honeysql + +(test-namespaces 'honeysql.core-test 'honeysql.format-test) + +;;;; minimallist (test-namespaces 'minimallist.core-test) -;;;; Final exit code +;;;; final exit code (let [{:keys [:test :fail :error] :as m} @status] (prn m)