                                                   (p/do*
                                                    (swap! api-calls conj [:get-user params])
                                                    (get users params))))}}
-                             Root '[{(:root/user {:user/name "nipponfarm"})
-                                     [:user/name
-                                      :user/favorite-color
-                                      :user/favorite-number
-                                      {:user/favorite-fellow-user [:user/name
-                                                                   :user/favorite-color
-                                                                   :user/favorite-number]}]}
-                                    {(:jamie {:< :root/user :user/name "jburnford"})
-                                     [:user/name
-                                      :user/favorite-color]}])]
+                             resolvers '[{(:root/user {:user/name "nipponfarm"})
+                                          [:user/name
+                                           :user/favorite-color
+                                           :user/favorite-number
+                                           {:user/vehicle [:vehicle/make
+                                                           :vehicle/model]}
+                                           {:user/favorite-fellow-user [:user/name
+                                                                        :user/favorite-color
+                                                                        :user/favorite-number]}]}
+                                         {(:jamie {:< :root/user :user/name "jburnford"})
+                                          [:user/name
+                                           :user/favorite-color]}])]
       (take!
        (async/into #{} data-chan)
        (fn [v]
          (is (= #{{:root/user {:user/name "nipponfarm"}}
                   {:root/user {:user/favorite-color :color/blue}}
                   {:root/user {:user/favorite-number 42}}
+                  {:root/user {:user/vehicle {:vehicle/make "Toyota"
+                                              :vehicle/model "Hilux"}}}
                   {:root/user {:user/favorite-fellow-user {:user/name "jburnford"}}}
                   {:root/user {:user/favorite-fellow-user {:user/favorite-color :color/red}}}
                   {:root/user {:user/favorite-fellow-user {:user/favorite-number 7}}}

  (let [ast (om/query->ast query)]
    (resolve* context root-mapping (:children ast))))

(def User
  {:user/name
   (fn [context ast]
     (:user/name context))

   #{:user/favorite-color :user/favorite-number}
   (fn [context ast]
     (p/alet [get-user (get-in context [:apis :get-user])
              user (p/await (get-user {:name (:user/name context)}))]
       (set/rename-keys user {:favorite-color :user/favorite-color
                              :favorite-number :user/favorite-number})))

   :user/favorite-fellow-user
   (fn [context ast]

         (resolve* (assoc context
                          :channel c
                          :user/name (:favorite-fellow-user-name user))
                   resolvers
                   (:children ast)))
       c))})

(deftest new-thing-works
  (async done
