-
Notifications
You must be signed in to change notification settings - Fork 60
/
Copy pathnested_test.exs
35 lines (25 loc) · 1.04 KB
/
nested_test.exs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
defmodule NestedTestRecord do
defstruct author: nil
use Vex.Struct
validates([:author, :name], presence: true)
end
defmodule NestedTest do
use ExUnit.Case
test "nested" do
assert Vex.valid?([author: [name: "Foo"]], %{[:author, :name] => [presence: true]})
nested_errors = [{:error, [:author, :name], :presence, "must be present"}]
assert nested_errors ==
Vex.errors([author: [name: ""]], %{[:author, :name] => [presence: true]})
end
test "nested with _vex" do
assert Vex.valid?(author: [name: "Foo"], _vex: %{[:author, :name] => [presence: true]})
nested_errors = [{:error, [:author, :name], :presence, "must be present"}]
assert nested_errors ==
Vex.errors(author: [name: ""], _vex: %{[:author, :name] => [presence: true]})
end
test "nested in Record" do
assert Vex.valid?(%NestedTestRecord{author: [name: "Foo"]})
nested_errors = [{:error, [:author, :name], :presence, "must be present"}]
assert nested_errors == Vex.errors(%NestedTestRecord{author: [name: ""]})
end
end