@@ -24,13 +24,29 @@ public function test_conditional_rules_are_properly_expanded_and_filtered()
2424
2525 $ this ->assertEquals ([
2626 'name ' => ['required ' , 'min:2 ' ],
27+ 'email ' => [],
2728 'password ' => ['required ' , 'min:2 ' ],
2829 'username ' => ['required ' , 'min:2 ' ],
2930 'address ' => ['required ' ],
3031 'city ' => ['required ' , 'min:2 ' ],
3132 ], $ rules );
3233 }
3334
35+ public function test_empty_rules_are_preserved ()
36+ {
37+ $ rules = ValidationRuleParser::filterConditionalRules ([
38+ 'name ' => [],
39+ 'email ' => '' ,
40+ 'password ' => Rule::when (true , 'required|min:2 ' ),
41+ ]);
42+
43+ $ this ->assertEquals ([
44+ 'name ' => [],
45+ 'email ' => '' ,
46+ 'password ' => ['required ' , 'min:2 ' ],
47+ ], $ rules );
48+ }
49+
3450 public function test_conditional_rules_with_default ()
3551 {
3652 $ rules = ValidationRuleParser::filterConditionalRules ([
@@ -49,4 +65,19 @@ public function test_conditional_rules_with_default()
4965 'address ' => ['required ' , 'string ' , 'max:10 ' ],
5066 ], $ rules );
5167 }
68+
69+ public function test_empty_conditional_rules_are_preserved ()
70+ {
71+ $ rules = ValidationRuleParser::filterConditionalRules ([
72+ 'name ' => Rule::when (true , '' , ['string ' , 'max:10 ' ]),
73+ 'email ' => Rule::when (false , ['required ' , 'min:2 ' ], []),
74+ 'password ' => Rule::when (false , 'required|min:2 ' , 'string|max:10 ' ),
75+ ]);
76+
77+ $ this ->assertEquals ([
78+ 'name ' => [],
79+ 'email ' => [],
80+ 'password ' => ['string ' , 'max:10 ' ],
81+ ], $ rules );
82+ }
5283}
0 commit comments