From d44f7e83300e0c1872924a42cf01738d517a049e Mon Sep 17 00:00:00 2001 From: Eric Junker Date: Mon, 12 Feb 2024 14:40:03 -0600 Subject: [PATCH] Restore V3 logic for beforeResolving() of BaseData to prevent out of memory error when you make multiple requests in a test --- src/LaravelDataServiceProvider.php | 4 ++++ tests/RequestTest.php | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/LaravelDataServiceProvider.php b/src/LaravelDataServiceProvider.php index aa76cb584..622945593 100644 --- a/src/LaravelDataServiceProvider.php +++ b/src/LaravelDataServiceProvider.php @@ -41,6 +41,10 @@ function () { ); $this->app->beforeResolving(BaseData::class, function ($class, $parameters, $app) { + if ($app->has($class)) { + return; + } + $app->bind( $class, fn ($container) => $class::from($container['request']) diff --git a/tests/RequestTest.php b/tests/RequestTest.php index a1fa48ac1..d14260226 100644 --- a/tests/RequestTest.php +++ b/tests/RequestTest.php @@ -21,7 +21,7 @@ ValidationException::class, ]); - Route::post('/example-route', function (Sim $data) { + Route::post('/example-route', function (SimpleData $data) { return ['given' => $data->string]; }); }); @@ -38,6 +38,18 @@ ->assertJson(['given' => 'Hello']); }); +it('can make multiple requests', function () { + postJson('/example-route', [ + 'string' => 'Hello', + ]) + ->assertOk(); + + postJson('/example-route', [ + 'string' => 'Hello', + ]) + ->assertOk(); +}); + it('can returns a 201 response code for POST requests', function () { Route::post('/example-route', function () { return new SimpleData(request()->input('string'));