If I set up a params object (naming it validate-account to not shadow the params function, which I think is a bad example)
(def validate-account
(params :accounts
(validates [:name :real-name] :required true)
(permit [:name :real-name])))
The documented behavior is not met, in fact both the error case and the successful case do not work as described.
repl:39:> (rescue (validate-account {:name "hello"}))
(@{:name "name is required" :real-name "real-name is required"} nil)
repl:40:> (rescue (validate-account {:name "hello" :real-name "real"}))
(@{:name "name is required" :real-name "real-name is required"} nil)
Instead the true behavior is found when it is wrapped in {:body {...}}
repl:41:> (rescue (validate-account {:body {:name "hello"}}))
(@{:real-name "real-name is required"} nil)
repl:42:> (rescue (validate-account {:body {:name "hello" :real-name "real"}}))
(nil @{:db/table :accounts :name "hello" :real-name "real"})
If I set up a params object (naming it
validate-accountto not shadow the params function, which I think is a bad example)The documented behavior is not met, in fact both the error case and the successful case do not work as described.
Instead the true behavior is found when it is wrapped in
{:body {...}}