From 23e08b72ddbe892ea45f466f558b5772f3accc11 Mon Sep 17 00:00:00 2001 From: liquidz Date: Tue, 1 Mar 2022 06:21:44 +0900 Subject: [PATCH] test: Add test for antq.dep.clojure.tool cf. #146 --- src/antq/dep/clojure/tool.clj | 14 +++++++----- test/antq/dep/clojure/tool_test.clj | 35 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 test/antq/dep/clojure/tool_test.clj diff --git a/src/antq/dep/clojure/tool.clj b/src/antq/dep/clojure/tool.clj index 0ecfca35..acab78ae 100644 --- a/src/antq/dep/clojure/tool.clj +++ b/src/antq/dep/clojure/tool.clj @@ -13,14 +13,16 @@ (when (and sha tag url) (r/map->Dependency {:type :git-tag-and-sha :file file-path - :name (:lib edn) + :name (str (:lib edn)) :project :clojure-tool :version tag :extra {:url url :sha sha}})))) (defn load-deps - [] - (some->> (io/file (u.env/getenv "HOME") ".clojure" "tools") - (file-seq) - (filter #(and (.isFile %) (str/ends-with? (.getName %) ".edn"))) - (keep #(extract-deps (.getAbsolutePath %) (slurp %))))) + ([] + (load-deps (io/file (u.env/getenv "HOME") ".clojure" "tools"))) + ([dir-file] + (some->> dir-file + (file-seq) + (filter #(and (.isFile %) (str/ends-with? (.getName %) ".edn"))) + (keep #(extract-deps (.getAbsolutePath %) (slurp %)))))) diff --git a/test/antq/dep/clojure/tool_test.clj b/test/antq/dep/clojure/tool_test.clj new file mode 100644 index 00000000..c7bf1f19 --- /dev/null +++ b/test/antq/dep/clojure/tool_test.clj @@ -0,0 +1,35 @@ +(ns antq.dep.clojure.tool-test + (:require + [antq.dep.clojure.tool :as sut] + [antq.record :as r] + [clojure.java.io :as io] + [clojure.test :as t])) + +(def ^:private file-path + (.getAbsolutePath (io/file (io/resource "dep/clojure-cli-tool/dummy.edn")))) + +(defn- git-tag-dependency + [m] + (r/map->Dependency (merge {:project :clojure-tool + :type :git-tag-and-sha + :file file-path} + m))) + +(t/deftest extract-deps-test + (let [content (pr-str '{:lib foo/bar + :coord {:git/tag "1.0.0" + :git/sha "dummy sha" + :git/url "https://example.com"}})] + (t/is (= (git-tag-dependency {:name "foo/bar" :version "1.0.0" + :extra {:url "https://example.com" :sha "dummy sha"}}) + (sut/extract-deps file-path content))))) + +(t/deftest extract-deps-local-root-test + (let [content (pr-str '{:lib foo/bar + :coord {:local/root "/path/to/local"}})] + (t/is (nil? (sut/extract-deps file-path content))))) + +(t/deftest load-deps-test + (let [dir (io/file (io/resource "dep/clojure-cli-tool")) + deps (sut/load-deps dir)] + (t/is (every? #(= :git-tag-and-sha (:type %)) deps))))