diff --git a/src/Middleware/InjectBoost.php b/src/Middleware/InjectBoost.php index d3ec6c22..d82e8cb2 100644 --- a/src/Middleware/InjectBoost.php +++ b/src/Middleware/InjectBoost.php @@ -6,6 +6,7 @@ use Closure; use Illuminate\Http\Request; +use Illuminate\View\View; use Laravel\Boost\Services\BrowserLogger; use Symfony\Component\HttpFoundation\Response; @@ -13,13 +14,17 @@ class InjectBoost { public function handle(Request $request, Closure $next): Response { - // \Illuminate\Http\JsonResponse /** @var \Symfony\Component\HttpFoundation\Response $response */ $response = $next($request); if ($this->shouldInject($response->getContent())) { + $originalView = $response->original ?? null; $injectedContent = $this->injectScript($response->getContent()); $response->setContent($injectedContent); + + if ($originalView instanceof View) { + $response->original = $originalView; + } } return $response; diff --git a/tests/Feature/Middleware/InjectBoostTest.php b/tests/Feature/Middleware/InjectBoostTest.php new file mode 100644 index 00000000..fccea392 --- /dev/null +++ b/tests/Feature/Middleware/InjectBoostTest.php @@ -0,0 +1,27 @@ +app['view']->addNamespace('test', __DIR__.'/../../fixtures'); + + Route::get('injection-test', function () { + return view('test::injection-test'); + })->middleware(InjectBoost::class); + + $response = $this->get('injection-test'); + + $response->assertViewIs('test::injection-test') + ->assertSee('browser-logger-active') + ->assertSee('Browser logger active (MCP server detected).'); + } +} diff --git a/tests/fixtures/injection-test.blade.php b/tests/fixtures/injection-test.blade.php new file mode 100644 index 00000000..2a46f3b9 --- /dev/null +++ b/tests/fixtures/injection-test.blade.php @@ -0,0 +1,5 @@ + + + foo + +