Skip to content

Commit eedec68

Browse files
Add comprehensive validation tests for Request class (#51)
- Add test for successful validation returning only validated data - Add test for ValidationException with custom messages and attributes - Improve test coverage for existing Request::validate behavior
1 parent 5cec69b commit eedec68

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

tests/Unit/RequestTest.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
use Illuminate\Foundation\Auth\User;
44
use Illuminate\Support\Facades\Auth;
5+
use Illuminate\Validation\ValidationException;
56
use Laravel\Mcp\Request;
67

78
it('may return all data', function (): void {
@@ -76,3 +77,40 @@
7677

7778
expect($request->user())->toBeNull();
7879
});
80+
81+
it('validates and returns only validated data on success', function (): void {
82+
$request = new Request([
83+
'email' => '[email protected]',
84+
'extra' => 'keep out',
85+
]);
86+
87+
$validated = $request->validate([
88+
'email' => 'required|email',
89+
]);
90+
91+
expect($validated)->toBe([
92+
'email' => '[email protected]',
93+
]);
94+
});
95+
96+
it('throws ValidationException with custom messages and attributes', function (): void {
97+
$request = new Request([
98+
'email' => 'not-an-email',
99+
]);
100+
101+
$messages = [
102+
'email.email' => 'Please provide a valid :attribute.',
103+
];
104+
105+
$attributes = [
106+
'email' => 'email address',
107+
];
108+
109+
$closure = function () use ($request, $messages, $attributes): void {
110+
$request->validate([
111+
'email' => 'required|email',
112+
], $messages, $attributes);
113+
};
114+
115+
expect($closure)->toThrow(ValidationException::class);
116+
});

0 commit comments

Comments
 (0)