         sb (s/system-builder [[:a identity {:a-arg [:foo]}]
                               [:b ff {:b-arg [:a :a-arg]}]])
         sys (s/start-system! sb {:foo 10})
-        _ (s/stop-system! sys)]
+        sysmap (s/system-map sys)
+        stop-sys (s/stop-system! sys)]
 
     (testing "dependent items are created"
-      (is (= @(s/system-map sys)
-             {:foo 10
-              :a {:a-arg 10}
-              :b {:b-arg 10}})))
+      #?(:clj
+         (is (= @(s/system-map sys)
+                {:foo 10
+                 :a {:a-arg 10}
+                 :b {:b-arg 10}}))))
 
     (testing "dependent items were destroyed"
-      (is (= @destructor-vals
-             [{:b-arg 10}])))))
+      #?(:clj
+         (is (= @destructor-vals
+                [{:b-arg 10}]))))))
 
 (deftest composed-builders
   (let [destructor-vals (atom [])

                              [:b boom {:b-arg [:a :a-arg]}]])
        sys (s/start-system! sb {:foo 10})]
    (testing "system is unwound"
      (is (= @destructor-vals [{:a-arg 10}]))
      (is (thrown-with-msg?
           clojure.lang.ExceptionInfo
           #"start-system! failed and unwound"
           @sys)))))

        sb (s/system-builder [[:b ff {:b-arg [:a :a-arg]}]
                              [:a ff {:a-arg [:foo]}]])
        sys (s/start-system! sb {:foo 10})
        sysmap (s/system-map sys)
        stop-sys (s/stop-system! sys)]

    (testing "dependent items are created"
      #?(:clj
         (is (= @(s/system-map sys)
                {:foo 10
                 :a {:a-arg 10}
                 :b {:b-arg 10}}))))

    (testing "dependent items were destroyed"
      #?(:clj
         (is (= @destructor-vals
                [{:b-arg 10}
                 {:a-arg 10}]))))))

(deftest dependent-item-system-with-circular-deps
  (let [ff (fn [v] v)]
    #?(:clj
       (is (thrown-with-msg?
            clojure.lang.ExceptionInfo
            #"circular dependency"
            (s/system-builder [[:a ff {:a-arg [:b :b-arg]}]
                               [:b ff {:b-arg [:a :a-arg]}]]))))))

(deftest dependent-item-system-with-vector-arg-specs
  (let [destructor-vals (atom [])
