diff --git a/src/spec_tools/transform.cljc b/src/spec_tools/transform.cljc index 9efdcc81..faeafdcb 100644 --- a/src/spec_tools/transform.cljc +++ b/src/spec_tools/transform.cljc @@ -112,7 +112,7 @@ x)) ;; TODO: remove this as it couples transformation & validation? -(defn fail-on-extra-keys [{:keys [keys]} x] +(defn fail-on-extra-keys [{:keys [::parse/keys]} x] (if (and (map? x) (not (set/subset? (-> x (clojure.core/keys) (set)) keys))) ::s/invalid x)) diff --git a/test/cljc/spec_tools/core_test.cljc b/test/cljc/spec_tools/core_test.cljc index a6e43794..a75a1335 100644 --- a/test/cljc/spec_tools/core_test.cljc +++ b/test/cljc/spec_tools/core_test.cljc @@ -461,6 +461,9 @@ (st/select-spec ::person-spec person)))) (testing "failing on extra keys" + (is (not (s/invalid? (st/conform ::person + {:height 200, :weight 80} + st/fail-on-extra-keys-transformer)))) (is (s/invalid? (st/conform ::person person st/fail-on-extra-keys-transformer))) (is (s/invalid? (st/conform ::person-spec person st/fail-on-extra-keys-transformer))))