Skip to content
This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Commit 76ef192

Browse files
committed
Not set default required error message always
Skip if a previous one was set
1 parent 26da9df commit 76ef192

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

src/ArrayInput.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ public function isValid($context = null)
7070
}
7171

7272
if (! $hasValue && $required) {
73-
$this->setErrorMessage('Value is required');
73+
if ($this->errorMessage === null) {
74+
$this->setErrorMessage('Value is required');
75+
}
7476
return false;
7577
}
7678

src/FileInput.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,9 @@ public function isValid($context = null)
124124
}
125125

126126
if (! $hasValue && $required && ! $this->hasFallback()) {
127-
$this->setErrorMessage('Value is required');
127+
if ($this->errorMessage === null) {
128+
$this->setErrorMessage('Value is required');
129+
}
128130
return false;
129131
}
130132

src/Input.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,9 @@ public function isValid($context = null)
403403
}
404404

405405
if (! $hasValue && $required) {
406-
$this->setErrorMessage('Value is required');
406+
if ($this->errorMessage === null) {
407+
$this->setErrorMessage('Value is required');
408+
}
407409
return false;
408410
}
409411

test/InputTest.php

+13
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,19 @@ public function testRequiredWithoutFallbackAndValueNotSetThenFail()
175175
$this->assertEquals(['Value is required'], $input->getMessages(), 'getMessages() value not match');
176176
}
177177

178+
public function testRequiredWithoutFallbackAndValueNotSetThenFailWithCustomErrorMessage()
179+
{
180+
$input = $this->input;
181+
$input->setRequired(true);
182+
$input->setErrorMessage('fooErrorMessage');
183+
184+
$this->assertFalse(
185+
$input->isValid(),
186+
'isValid() should be return always false when no fallback value, is required, and not data is set.'
187+
);
188+
$this->assertEquals(['fooErrorMessage'], $input->getMessages(), 'getMessages() value not match');
189+
}
190+
178191
public function testNotRequiredWithoutFallbackAndValueNotSetThenIsValid()
179192
{
180193
$input = $this->input;

0 commit comments

Comments
 (0)