|
2 | 2 |
|
3 | 3 | use Illuminate\Foundation\Auth\User; |
4 | 4 | use Illuminate\Support\Facades\Auth; |
| 5 | +use Illuminate\Validation\ValidationException; |
5 | 6 | use Laravel\Mcp\Request; |
6 | 7 |
|
7 | 8 | it('may return all data', function (): void { |
|
76 | 77 |
|
77 | 78 | expect($request->user())->toBeNull(); |
78 | 79 | }); |
| 80 | + |
| 81 | +it('validates and returns only validated data on success', function (): void { |
| 82 | + $request = new Request([ |
| 83 | + |
| 84 | + 'extra' => 'keep out', |
| 85 | + ]); |
| 86 | + |
| 87 | + $validated = $request->validate([ |
| 88 | + 'email' => 'required|email', |
| 89 | + ]); |
| 90 | + |
| 91 | + expect($validated)->toBe([ |
| 92 | + |
| 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