                                :headers {"location" "http://example.com/bat"}})))
           r-client (client/wrap-redirects client)
           resp (promise)
-          execption (promise)
+          exception (promise)
           _ (r-client {:body "ok" :url "http://example.com"
                        :request-method method
-                       :force-redirects true} resp execption)]
+                       :force-redirects true} resp exception)]
       (is (= 200 (:status @resp)))
       (is (= ["http://example.com" "http://example.com/bat"] (:trace-redirects @resp)))
       (is (= "ok" (:body @resp)))
       (is (= expected-method (:request-method (:req @resp))))
-      (is (not (realized? execption))))))
+      (is (not (realized? exception))))))
 
 (deftest pass-on-follow-redirects-false
   (let [client (fn [req] {:status 302 :body (:body req)})

                             :headers {"location" "http://example.com/bat"}}))
          r-client (client/wrap-redirects client)
          resp (promise)
          execption (promise)
          _ (r-client {:body "ok" :url "http://example.com"
                       :request-method method} resp execption)]
      (is (= status (:status @resp)))
      (is (= ["http://example.com"] (:trace-redirects @resp)))
      (is (= {"location" "http://example.com/bat"} (:headers @resp)))
      (is (= "ok" (:body @resp)))
      (is (not (realized? execption))))))

(deftest force-redirects-on-non-redirectable-methods
  (doseq [method [:put :post :delete]

    (is (= "/bat" (:uri (:req @resp))))
    (is (= "x=y" (:query-string (:req @resp))))
    (is (nil? (:query-params (:req @resp))))
    (is (not (realized? exception)))))

(deftest max-redirects
  (let [client (fn [req]
