         sb (s/system-builder [[:b ff {:b-arg [:a :a-arg]}]
                               [:a ff {:a-arg [:foo]}]])
         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}
-              {:a-arg 10}])))))
+      #?(:clj
+         (is (= @destructor-vals
+                [{:b-arg 10}
+                 {:a-arg 10}]))))))
 
 (deftest dependent-item-system-with-circular-deps
   (let [ff (fn [v] v)]
-    (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]}]])))))
+    #?(: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 [])

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

    (testing "dependent items are created"
      (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}
              {:a-arg 10}])))))

(deftest dependent-item-system-specified-out-of-order
  (let [destructor-vals (atom [])

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