Skip to content

Commit

Permalink
Add tests for cross project configurations #109
Browse files Browse the repository at this point in the history
  • Loading branch information
liquidz committed Nov 13, 2021
1 parent b0d714c commit 04bf7c9
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 4 deletions.
7 changes: 4 additions & 3 deletions src/antq/dep/clojure.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
(:require
[antq.record :as r]
[antq.util.dep :as u.dep]
[antq.util.env :as u.env]
[clojure.edn :as edn]
[clojure.java.io :as io]
[clojure.string :as str]
Expand All @@ -16,9 +17,9 @@
(defn cross-project-configuration-files
"cf. https://clojure.org/reference/deps_and_cli#_deps_edn_sources"
[]
(->> [(some-> (System/getenv "CLJ_CONFIG") (io/file project-file))
(some-> (System/getenv "XDG_CONFIG_HOME") (io/file "clojure" project-file))
(some-> (System/getenv "HOME") (io/file ".clojure" project-file))]
(->> [(some-> (u.env/getenv "CLJ_CONFIG") (io/file project-file))
(some-> (u.env/getenv "XDG_CONFIG_HOME") (io/file "clojure" project-file))
(some-> (u.env/getenv "HOME") (io/file ".clojure" project-file))]
(filter #(and % (.exists %)))))

(defn repositories-by-files
Expand Down
35 changes: 34 additions & 1 deletion test/antq/dep/clojure_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
(:require
[antq.dep.clojure :as sut]
[antq.record :as r]
[antq.util.env :as u.env]
[clojure.java.io :as io]
[clojure.test :as t]))

(def ^:private file-path
;; "path/to/deps.edn"
(.getAbsolutePath (io/file (io/resource "dep/deps.edn"))))


(defn- java-dependency
[m]
(r/map->Dependency (merge {:project :clojure
Expand Down Expand Up @@ -66,6 +66,39 @@
:repositories {}})}
(set deps)))))

(t/deftest extract-deps-cross-project-configuration-test
(let [cross-project-dir (.getAbsolutePath
(io/file
(.getParentFile (io/file (io/resource "dep/deps.edn")))
"cross-project"))
content (pr-str '{:deps {foo/bar {:mvn/version "0.0.1"}}})]
(t/testing "CLJ_CONFIG"
(with-redefs [u.env/getenv #(when (= "CLJ_CONFIG" %) cross-project-dir)]
(t/is (= [(java-dependency
{:name "foo/bar"
:version "0.0.1"
:file "dummy"
:repositories {"clj-config" {:url "https://clj-config.example.com"}}})]
(sut/extract-deps "dummy" content)))))

(t/testing "XDG_CONFIG_HOME"
(with-redefs [u.env/getenv #(when (= "XDG_CONFIG_HOME" %) cross-project-dir)]
(t/is (= [(java-dependency
{:name "foo/bar"
:version "0.0.1"
:file "dummy"
:repositories {"xdg-config-home" {:url "https://xdg-config-home.example.com"}}})]
(sut/extract-deps "dummy" content)))))

(t/testing "HOME"
(with-redefs [u.env/getenv #(when (= "HOME" %) cross-project-dir)]
(t/is (= [(java-dependency
{:name "foo/bar"
:version "0.0.1"
:file "dummy"
:repositories {"home" {:url "https://home.example.com"}}})]
(sut/extract-deps "dummy" content)))))))

(t/deftest extract-deps-unexpected-test
(t/is (empty? (sut/extract-deps file-path "[:deps \"foo\"]")))
(t/is (empty? (sut/extract-deps file-path "{:deps \"foo\"}")))
Expand Down
1 change: 1 addition & 0 deletions test/resources/dep/cross-project/.clojure/deps.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{:mvn/repos {"home" {:url "https://home.example.com"}}}
1 change: 1 addition & 0 deletions test/resources/dep/cross-project/clojure/deps.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{:mvn/repos {"xdg-config-home" {:url "https://xdg-config-home.example.com"}}}
1 change: 1 addition & 0 deletions test/resources/dep/cross-project/deps.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{:mvn/repos {"clj-config" {:url "https://clj-config.example.com"}}}

0 comments on commit 04bf7c9

Please sign in to comment.