From ac3b8e5ea8bcea9d45a0a16e8d57497e4e939dd4 Mon Sep 17 00:00:00 2001 From: Tim MacDonald Date: Wed, 18 Dec 2024 09:30:05 +1100 Subject: [PATCH] [1.x] Add nested controller route grouping (#433) * Add nested controller route grouping * linting --- src/Support/RedisAdapter.php | 2 +- tests/Feature/Recorders/SlowRequestsTest.php | 24 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Support/RedisAdapter.php b/src/Support/RedisAdapter.php index 0ea1cd08..bc945b64 100644 --- a/src/Support/RedisAdapter.php +++ b/src/Support/RedisAdapter.php @@ -50,7 +50,7 @@ public function xadd(string $key, array $dictionary): string|Pipeline|PhpRedis|R */ public function xrange(string $key, string $start, string $end, ?int $count = null): array { - return collect($this->handle([ // @phpstan-ignore return.type, argument.templateType, argument.templateType + return collect($this->handle([ // @phpstan-ignore argument.templateType, argument.templateType 'XRANGE', $this->config->get('database.redis.options.prefix').$key, $start, diff --git a/tests/Feature/Recorders/SlowRequestsTest.php b/tests/Feature/Recorders/SlowRequestsTest.php index 978d06ba..b02afd68 100644 --- a/tests/Feature/Recorders/SlowRequestsTest.php +++ b/tests/Feature/Recorders/SlowRequestsTest.php @@ -488,6 +488,30 @@ Pulse::ignore(fn () => expect(DB::table('pulse_values')->count())->toBe(0)); }); +it('handles controller nested route groups', function () { + Config::set('pulse.recorders.'.SlowRequests::class.'.threshold', 0); + + Route::controller(MyController::class)->group(function () { + Route::get('index', 'index')->name('test')->withoutMiddleware('auth:admin'); + })->withoutMiddleware('auth'); + + $response = get('/index'); + Pulse::stopRecording(); + + $response->assertContent('ok'); + $entries = DB::table('pulse_entries')->get(); + expect($entries)->toHaveCount(1); + expect($entries[0]->key)->toBe(json_encode(['GET', '/index', 'MyController@index'])); +}); + +class MyController +{ + public function index() + { + return 'ok'; + } +} + class ExceptionThrowingRecorder { public function register(callable $record, Application $app): void