From 114a1ec171d76542edc0a29bc63ab985962d738e Mon Sep 17 00:00:00 2001 From: Luke Kuzmish Date: Thu, 5 Dec 2024 14:19:32 -0500 Subject: [PATCH] adds test --- tests/RequestTest.php | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/RequestTest.php b/tests/RequestTest.php index 19efbfc4b..e2733ff72 100644 --- a/tests/RequestTest.php +++ b/tests/RequestTest.php @@ -143,3 +143,39 @@ public static function fromRequest(Request $request) ->assertJson(['name' => 'Rick Astley']); } ); + +it('can build authorize parameters from the container', function (): void { + class SomeDependency + { + public function __construct(public string $street) + { + } + } + + app()->bind(SomeDependency::class, fn () => new SomeDependency('Sesame')); + class AuthorizeFromContainerRequest extends Data + { + public static string $street; + + public function __construct(public string $name) + { + } + + public static function authorize(SomeDependency $dependency): bool + { + self::$street = $dependency->street; + + return $dependency->street === 'Sesame'; + } + } + + Route::post('/route-with-authorization-dependencies', function (\AuthorizeFromContainerRequest $data) { + return ['name' => $data->name, 'street' => \AuthorizeFromContainerRequest::$street]; + }); + + postJson('/route-with-authorization-dependencies', [ + 'name' => 'Rick Astley', + ]) + ->assertOk() + ->assertJson(['name' => 'Rick Astley', 'street' => 'Sesame']); +});