                                         {:async-thing-value "b"}
                                         {:async-thing-value "c"}]}))
          (is (= 1 @counter))))))
+
+#?(:clj
+   (deftest test-mutate-async
+     (testing "call mutation and parse response"
+       (is (= (<!! (async-parser {} [{'(call/op {}) [:user/id :user/name]}]))
+              {'call/op {:user/id 1, :user/name "Mel"}})))))
 
 (def index
   #::pc{:index-io {#{:customer/id}                                         #:customer{:external-ids  {}

  (fn [_ {:keys [color-async]}]
    {:color-async2 (str color-async "-derived")}))

(def async-parser
  (p/async-parser {::p/plugins
                   [(p/env-plugin {::p/reader             [p/map-reader pc/all-async-readers]
                                   ::pc/resolver-dispatch resolver-fn
                                   ::pc/indexes           @base-indexes})
                    p/request-cache-plugin]}))

#?(:clj

      (is (= 1 @counter)))))

(defmutation 'call/op
  {::pc/output [:user/id]}
  (fn [env input]
    {:user/id 1}))

