diff --git a/src/clj/com/rpl/specter.cljx b/src/clj/com/rpl/specter.cljx index cc0152a..8a3499e 100644 --- a/src/clj/com/rpl/specter.cljx +++ b/src/clj/com/rpl/specter.cljx @@ -284,7 +284,8 @@ must [k] (select* [this structure next-fn] - (next-fn (get structure k))) + (if (contains? structure k) + (next-fn (get structure k)))) (transform* [this structure next-fn] (if (contains? structure k) (assoc structure k (next-fn (get structure k))) diff --git a/test/com/rpl/specter/core_test.cljx b/test/com/rpl/specter/core_test.cljx index 74dfe2a..c9bf24e 100644 --- a/test/com/rpl/specter/core_test.cljx +++ b/test/com/rpl/specter/core_test.cljx @@ -255,6 +255,8 @@ (and (= (s/transform (s/must k1) op m) (s/transform (s/keypath k1) op m)) (= (s/transform (s/must k2) op m) m) + (= (s/select (s/must k1) m) (s/select (s/keypath k1) m)) + (empty? (s/select (s/must k2) m)) )))) (defspec parser-test