           (p/then
            sysmap
            (fn [v] (is (= v x-sysmap))
-             (done))))))
+             (done))))))))
+
+(deftest dependent-item-system-with-mixed-destructors-destruction
+  (let [{destructor-vals :destructor-vals
+         ff :ff
+         b :sb
+         sys :sys
+         sysmap :sysmap
+         stop-sys :stop-sys
+         x-sysmap :x-sysmap
+         x-dvals :x-dvals} (dependent-item-system-with-mixed-destructors-fixtures)]
 
     (testing "dependent items were destroyed"
       #?(:clj

        stop-sys (s/stop-system! sys)
        x-sysmap {:foo 10 :a {:a-arg 10} :b {:b-arg 10}}
        x-dvals [{:b-arg 10}]]

    (testing "dependent items are created"
      #?(:clj

           (fn [_] (is (= @destructor-vals x-dvals))
             (done))))))))

(defn dependent-item-system-with-mixed-destructors-fixtures
  []
  (let [destructor-vals (atom [])
        ff (fn [v] [v (fn [] (swap! destructor-vals conj v))])
        sb (s/system-builder [[:a identity {:a-arg [:foo]}]
