From 71fbdf0db199288464375fbb93972083a1f01f1b Mon Sep 17 00:00:00 2001 From: mohammadrasoul asghari Date: Wed, 17 Sep 2025 22:48:23 +0330 Subject: [PATCH] Add comprehensive validation tests for Request class - 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 --- tests/Unit/RequestTest.php | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/Unit/RequestTest.php b/tests/Unit/RequestTest.php index d54e0f0..cee9a1e 100644 --- a/tests/Unit/RequestTest.php +++ b/tests/Unit/RequestTest.php @@ -2,6 +2,7 @@ use Illuminate\Foundation\Auth\User; use Illuminate\Support\Facades\Auth; +use Illuminate\Validation\ValidationException; use Laravel\Mcp\Request; it('may return all data', function (): void { @@ -76,3 +77,40 @@ expect($request->user())->toBeNull(); }); + +it('validates and returns only validated data on success', function (): void { + $request = new Request([ + 'email' => 'alice@example.com', + 'extra' => 'keep out', + ]); + + $validated = $request->validate([ + 'email' => 'required|email', + ]); + + expect($validated)->toBe([ + 'email' => 'alice@example.com', + ]); +}); + +it('throws ValidationException with custom messages and attributes', function (): void { + $request = new Request([ + 'email' => 'not-an-email', + ]); + + $messages = [ + 'email.email' => 'Please provide a valid :attribute.', + ]; + + $attributes = [ + 'email' => 'email address', + ]; + + $closure = function () use ($request, $messages, $attributes): void { + $request->validate([ + 'email' => 'required|email', + ], $messages, $attributes); + }; + + expect($closure)->toThrow(ValidationException::class); +});