                    :junk6 \"6\"
                    :junk7 \"7\"
                    :junk8 \"8\"}"
-        config (#?(:cljs source-logging-push-back-reader
-                   :clj java.io.StringReader.) config-str)]
+        config (string-reader config-str)]
     (is (= "foo" (:x (read-config config))))))
 
 (deftest or-dangling-ref
   (let [config-str "{:y #or [#ref [:x] \"bar\"]}"
-        config (#?(:cljs source-logging-push-back-reader
-                   :clj java.io.StringReader.) config-str)]
+        config (string-reader config-str)]
     (is (= "bar" (:y (read-config config))))))
 
 (deftest meta-preservation-test

  (let [source "test/aero/includes.edn"]
    (is (:aero/missing-include (read-config source {:profile :file-does-not-exist})))))

#?(:clj
   (deftest dangling-ref-test
     (is
      (=
       {:user {:favorite-color :blue}
        :gardner {:favorite-color :blue}
        :karl {:favorite-color :blue}
        :color :blue}
       (read-config (java.io.StringReader.
                     (binding [*print-meta* true]
                       (pr-str {:user ^:ref [:karl]
                                :gardner {:favorite-color ^:ref [:color]}
                                :karl ^:ref [:gardner]
                                :color :blue}))))))))

(deftest deferred-test
  (is

  #?(:clj (System/getenv (str s)))
  #?(:cljs (gobj/get js/process.env s)))

(defn- string-reader
  [str]
  (#?(:cljs source-logging-push-back-reader
      :clj java.io.StringReader.) str))

(def network-call-count (atom 0))

(defmethod reader 'expensive-network-call
