Skip to content

Commit f8207d6

Browse files
committed
refactor(view): adapt x-input to new validaton errors
1 parent 600a2b1 commit f8207d6

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

packages/view/src/Components/x-input.view.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@
88
*/
99

1010
use Tempest\Http\Session\Session;
11+
use Tempest\Validation\Validator;
1112

1213
use function Tempest\get;
1314
use function Tempest\Support\str;
1415

1516
/** @var Session $session */
1617
$session = get(Session::class);
1718

19+
/** @var Validator $validator */
20+
$validator = get(Validator::class);
21+
1822
$label ??= str($name)->title();
1923
$id ??= $name;
2024
$type ??= 'text';
@@ -30,9 +34,9 @@
3034
<textarea :if="$type === 'textarea'" :name="$name" :id="$id">{{ $original }}</textarea>
3135
<input :else :type="$type" :name="$name" :id="$id" :value="$original"/>
3236

33-
<div :if="$errors !== []">
34-
<div :foreach="$errors as $error">
35-
{{ $error->message() }}
36-
</div>
37-
</div>
37+
<ul :if="$errors !== []">
38+
<li :foreach="$errors as $error">
39+
{{ $validator->getErrorMessage($error) }}
40+
</li>
41+
</ul>
3842
</div>

tests/Integration/View/Components/InputComponentTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Tempest\Validation\Rules\IsInteger;
77
use Tempest\Validation\Rules\IsString;
88
use Tempest\Validation\Rules\Length;
9+
use Tempest\Validation\Validator;
910
use Tests\Tempest\Integration\FrameworkIntegrationTestCase;
1011

1112
final class InputComponentTest extends FrameworkIntegrationTestCase
@@ -88,8 +89,10 @@ public function test_error_message(): void
8889

8990
$html = $this->render('<x-input name="name" />');
9091

91-
$this->assertStringContainsString(new IsString()->message(), $html);
92-
$this->assertStringContainsString(new Length(min: 5)->message(), $html);
93-
$this->assertStringNotContainsString(new IsInteger()->message(), $html);
92+
$validator = $this->container->get(Validator::class);
93+
94+
$this->assertStringContainsString($validator->getErrorMessage(new IsString()), $html);
95+
$this->assertStringContainsString($validator->getErrorMessage(new Length(min: 5)), $html);
96+
$this->assertStringNotContainsString($validator->getErrorMessage(new IsInteger()), $html);
9497
}
9598
}

0 commit comments

Comments
 (0)