File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -136,7 +136,9 @@ defmodule Talos.Types.MapType do
136136 end
137137
138138 defp fields_by_key ( keys , fields ) do
139- Enum . map ( keys , fn key -> Enum . find ( fields , & ( & 1 . key == key ) ) end )
139+ keys
140+ |> Enum . map ( fn key -> Enum . find ( fields , & ( & 1 . key == key ) ) end )
141+ |> Enum . filter ( & ( ! is_nil ( & 1 ) ) )
140142 end
141143
142144 defp find_field_errors ( fields , map ) do
Original file line number Diff line number Diff line change @@ -301,4 +301,18 @@ defmodule Talos.Types.MapTypeTest do
301301 assert % { } == MapType . errors ( schema , % { "name" => "Dmitry" } )
302302 assert % { } == MapType . errors ( schema , % { "age" => 88 } )
303303 end
304+
305+ test "#errors - with required_any_one = true and unexpected keys" do
306+ schema =
307+ map (
308+ required_any_one: true ,
309+ fields: [
310+ field ( key: "name" , type: string ( ) ) ,
311+ field ( key: "age" , type: integer ( gteq: 18 ) )
312+ ]
313+ )
314+
315+ assert % { } ==
316+ MapType . errors ( schema , % { "age" => 18 , "unexpected" => true } )
317+ end
304318end
You can’t perform that action at this time.
0 commit comments