           (should= HttpServletResponse/SC_BAD_REQUEST (:status response))
           (should= "validation-error" (-> response :body :error))))
 
+    (it "should handle s/enum schema types"
+        ;; Test is necessary because the s/enum type, EnumSchema, is also IPersistentMap
+        ;; with key :vs which causes a failure treating the string (or keyword) from the data as
+        ;; a map as well.
+        (should-be-nil
+          (validate-against-schema {:params {:enable "true"}} {:enable (s/enum "true" "false")})))
+
     (it "ignores extra keys"
         (should-be-nil
           (validate-against-schema {:params {:name "Rook" :ssn "999-99-9999"}} example-schema))))

          (should= HttpServletResponse/SC_BAD_REQUEST
                   (->
                     (request :post "/")
                     (assoc :data {:first-name "Wrong Key"})
                     handler
                     :status))))))

(run-specs)

    io.aviso.rook
    io.aviso.rook.schema-validation)
  (:require
    [clojure.core.async :refer [<!!]]
    [schema.core :as s]
    [clojure.tools.logging :as l]
    [io.aviso.rook.async :as async]))
