From a1ee60fcdf57e8ad5dbd121461c5e510897e8a85 Mon Sep 17 00:00:00 2001 From: Robert Boes <2871897+RobertBoes@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:57:08 +0200 Subject: [PATCH] fix encoded URL --- src/Response.php | 2 +- tests/ResponseTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Response.php b/src/Response.php index d2565294..df17b3fe 100644 --- a/src/Response.php +++ b/src/Response.php @@ -93,7 +93,7 @@ public function toResponse($request) $page = [ 'component' => $this->component, 'props' => $props, - 'url' => Str::start(Str::after($request->fullUrl(), $request->getSchemeAndHttpHost()), '/'), + 'url' => Str::start(Str::after(rawurldecode($request->fullUrl()), $request->getSchemeAndHttpHost()), '/'), 'version' => $this->version, ]; diff --git a/tests/ResponseTest.php b/tests/ResponseTest.php index ef692c02..344c69c9 100644 --- a/tests/ResponseTest.php +++ b/tests/ResponseTest.php @@ -458,6 +458,18 @@ public function test_the_page_url_doesnt_double_up(): void $this->assertSame('/subpath/product/123', $page->url); } + public function test_the_page_url_is_not_encoded(): void + { + $request = Request::create('/product/123', 'GET', ['value' => 'te/st']); + $request->headers->add(['X-Inertia' => 'true']); + + $response = new Response('Product/Show', []); + $response = $response->toResponse($request); + $page = $response->getData(); + + $this->assertSame('/product/123?value=te/st', $page->url); + } + public function test_prop_as_basic_array(): void { $request = Request::create('/years', 'GET');