From ef3f1c401d42ceb09950e80cffff65cb46f75fcf Mon Sep 17 00:00:00 2001 From: liquidz Date: Thu, 17 Nov 2022 06:21:37 +0900 Subject: [PATCH] fix: Fix boot upgrader to be able to handle meta cf. #189 --- src/antq/upgrade/boot.clj | 7 +++++-- test/antq/dep/boot_test.clj | 3 ++- test/antq/upgrade/boot_test.clj | 18 ++++++++++++++++++ test/resources/dep/test_build.boot | 1 + tests.edn | 3 ++- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/antq/upgrade/boot.clj b/src/antq/upgrade/boot.clj index 571ee224..13793483 100644 --- a/src/antq/upgrade/boot.clj +++ b/src/antq/upgrade/boot.clj @@ -7,8 +7,11 @@ (defn- in-dependencies? [loc] - (-> loc z/up z/up z/up z/left z/sexpr - (= :dependencies))) + (loop [loc (-> loc z/up z/up)] + (case (z/tag loc) + :meta (recur (z/up loc)) + :vector (= :dependencies (-> loc z/up z/left z/sexpr)) + false))) (defn upgrade-dep [loc version-checked-dep] diff --git a/test/antq/dep/boot_test.clj b/test/antq/dep/boot_test.clj index 37aad675..d5bca6a5 100644 --- a/test/antq/dep/boot_test.clj +++ b/test/antq/dep/boot_test.clj @@ -24,7 +24,8 @@ (t/is (every? #(instance? antq.record.Dependency %) deps)) (t/is (= #{(dependency {:name "foo/core" :version "1.0.0"}) (dependency {:name "bar/bar" :version "2.0.0"}) - (dependency {:name "baz/baz" :version "3.0.0"})} + (dependency {:name "baz/baz" :version "3.0.0"}) + (dependency {:name "with/meta" :version "4.0.0"})} (set deps))))) (t/deftest load-deps-test diff --git a/test/antq/upgrade/boot_test.clj b/test/antq/upgrade/boot_test.clj index 114129b4..c63ddb3d 100644 --- a/test/antq/upgrade/boot_test.clj +++ b/test/antq/upgrade/boot_test.clj @@ -15,6 +15,13 @@ :latest-version "9.0.0" :file (io/resource "dep/test_build.boot")})) +(def ^:private dummy-meta-dep + (r/map->Dependency {:project :boot + :type :java + :name "with/meta" + :latest-version "9.0.0" + :file (io/resource "dep/test_build.boot")})) + (t/deftest upgrade-dep-test (let [from-deps (->> dummy-java-dep :file @@ -25,3 +32,14 @@ (dep.boot/extract-deps ""))] (t/is (= #{{:name "bar/bar" :version {:- "2.0.0" :+ "9.0.0"}}} (h/diff-deps from-deps to-deps))))) + +(t/deftest upgrade-meta-dep-test + (let [from-deps (->> dummy-meta-dep + :file + (slurp) + (dep.boot/extract-deps "")) + to-deps (->> dummy-meta-dep + (upgrade/upgrader) + (dep.boot/extract-deps ""))] + (t/is (= #{{:name "with/meta" :version {:- "4.0.0" :+ "9.0.0"}}} + (h/diff-deps from-deps to-deps))))) diff --git a/test/resources/dep/test_build.boot b/test/resources/dep/test_build.boot index 8a1b54b3..6a4743f5 100644 --- a/test/resources/dep/test_build.boot +++ b/test/resources/dep/test_build.boot @@ -4,6 +4,7 @@ :dependencies '[[foo/core "1.0.0"] [bar "2.0.0"] [baz "3.0.0" :scope "test"] + ^:foo/bar [with/meta "4.0.0"] [ver-not-string :version] [ver-empty ""]]) diff --git a/tests.edn b/tests.edn index d7a59727..9f8c03dd 100644 --- a/tests.edn +++ b/tests.edn @@ -1,3 +1,4 @@ #kaocha/v1 {:color? true - :reporter [kaocha.report/dots]} + :reporter [kaocha.report/documentation]} + ;:reporter [kaocha.report/dots]}