@@ -38,12 +38,18 @@ public function testGetRules()
3838 $ this ->assertEquals ($ rules ['test ' ], ['required ' ]);
3939 $ this ->assertEquals ($ rules ['test_with_rules ' ], ['required ' ]);
4040 $ this ->assertEquals ($ rules ['test_with_rules_closure ' ], ['required ' ]);
41- $ this ->assertEquals ($ rules ['test_with_rules_input_object ' ], ['required ' ]);
42- $ this ->assertEquals (array_get ($ rules , 'test_with_rules_input_object.val ' ), ['required ' ]);
43- $ this ->assertEquals (array_get ($ rules , 'test_with_rules_input_object.nest ' ), ['required ' ]);
44- $ this ->assertEquals (array_get ($ rules , 'test_with_rules_input_object.nest.email ' ), ['email ' ]);
45- $ this ->assertEquals (array_get ($ rules , 'test_with_rules_input_object.list ' ), ['required ' ]);
46- $ this ->assertEquals (array_get ($ rules , 'test_with_rules_input_object.list.*.email ' ), ['email ' ]);
41+ $ this ->assertEquals ($ rules ['test_with_rules_nullable_input_object ' ], ['nullable ' ]);
42+ $ this ->assertNull (array_get ($ rules , 'test_with_rules_nullable_input_object.val ' ));
43+ $ this ->assertNull (array_get ($ rules , 'test_with_rules_nullable_input_object.nest ' ));
44+ $ this ->assertNull (array_get ($ rules , 'test_with_rules_nullable_input_object.nest.email ' ));
45+ $ this ->assertNull (array_get ($ rules , 'test_with_rules_nullable_input_object.list ' ));
46+ $ this ->assertNull (array_get ($ rules , 'test_with_rules_nullable_input_object.list.*.email ' ));
47+ $ this ->assertEquals ($ rules ['test_with_rules_non_nullable_input_object ' ], ['required ' ]);
48+ $ this ->assertEquals (array_get ($ rules , 'test_with_rules_non_nullable_input_object.val ' ), ['required ' ]);
49+ $ this ->assertEquals (array_get ($ rules , 'test_with_rules_non_nullable_input_object.nest ' ), ['required ' ]);
50+ $ this ->assertEquals (array_get ($ rules , 'test_with_rules_non_nullable_input_object.nest.email ' ), ['email ' ]);
51+ $ this ->assertEquals (array_get ($ rules , 'test_with_rules_non_nullable_input_object.list ' ), ['required ' ]);
52+ $ this ->assertEquals (array_get ($ rules , 'test_with_rules_non_nullable_input_object.list.*.email ' ), ['email ' ]);
4753 }
4854
4955 /**
@@ -66,7 +72,14 @@ public function testResolve()
6672 'test ' => 'test ' ,
6773 'test_with_rules ' => 'test ' ,
6874 'test_with_rules_closure ' => 'test ' ,
69- 'test_with_rules_input_object ' => [
75+ 'test_with_rules_nullable_input_object ' => [
76+ 'val ' => 'test ' ,
77+ 'nest ' => ['email ' => 'test@test.com ' ],
78+ 'list ' => [
79+ ['email ' => 'test@test.com ' ],
80+ ],
81+ ],
82+ 'test_with_rules_non_nullable_input_object ' => [
7083 'val ' => 'test ' ,
7184 'nest ' => ['email ' => 'test@test.com ' ],
7285 'list ' => [
@@ -115,9 +128,12 @@ public function testValidationError()
115128 $ this ->assertTrue ($ messages ->has ('test ' ));
116129 $ this ->assertTrue ($ messages ->has ('test_with_rules ' ));
117130 $ this ->assertTrue ($ messages ->has ('test_with_rules_closure ' ));
118- $ this ->assertTrue ($ messages ->has ('test_with_rules_input_object.val ' ));
119- $ this ->assertTrue ($ messages ->has ('test_with_rules_input_object.nest ' ));
120- $ this ->assertTrue ($ messages ->has ('test_with_rules_input_object.list ' ));
131+ $ this ->assertFalse ($ messages ->has ('test_with_rules_nullable_input_object.val ' ));
132+ $ this ->assertFalse ($ messages ->has ('test_with_rules_nullable_input_object.nest ' ));
133+ $ this ->assertFalse ($ messages ->has ('test_with_rules_nullable_input_object.list ' ));
134+ $ this ->assertTrue ($ messages ->has ('test_with_rules_non_nullable_input_object.val ' ));
135+ $ this ->assertTrue ($ messages ->has ('test_with_rules_non_nullable_input_object.nest ' ));
136+ $ this ->assertTrue ($ messages ->has ('test_with_rules_non_nullable_input_object.list ' ));
121137 }
122138 }
123139
@@ -130,19 +146,22 @@ public function testCustomValidationErrorMessages()
130146 {
131147 $ class = $ this ->getFieldClass ();
132148 $ field = new $ class ();
133- $ rules = $ field ->getRules ();
134149 $ attributes = $ field ->getAttributes ();
135150 try {
136151 $ attributes ['resolve ' ](null , [
137- 'test_with_rules_input_object ' => [
138- 'nest ' => ['email ' => 'invalidTestEmail.com ' ],
139- ],
152+ 'test_with_rules_nullable_input_object ' => [
153+ 'nest ' => ['email ' => 'invalidTestEmail.com ' ],
154+ ],
155+ 'test_with_rules_non_nullable_input_object ' => [
156+ 'nest ' => ['email ' => 'invalidTestEmail.com ' ],
157+ ],
140158 ], [], null );
141159 } catch (\Rebing \GraphQL \Error \ValidationError $ e ) {
142160 $ messages = $ e ->getValidatorMessages ();
143161
144162 $ this ->assertEquals ($ messages ->first ('test ' ), 'The test field is required. ' );
145- $ this ->assertEquals ($ messages ->first ('test_with_rules_input_object.nest.email ' ), 'The test with rules input object.nest.email must be a valid email address. ' );
163+ $ this ->assertEquals ($ messages ->first ('test_with_rules_nullable_input_object.nest.email ' ), 'The test with rules nullable input object.nest.email must be a valid email address. ' );
164+ $ this ->assertEquals ($ messages ->first ('test_with_rules_non_nullable_input_object.nest.email ' ), 'The test with rules non nullable input object.nest.email must be a valid email address. ' );
146165 }
147166 }
148167}
0 commit comments