@@ -827,4 +827,52 @@ public function test_the_page_url_doesnt_double_up(): void
827827
828828 $ this ->assertSame ('/subpath/product/123 ' , $ page ->url );
829829 }
830+
831+ public function test_trailing_slashes_in_a_url_are_preserved (): void
832+ {
833+ $ request = Request::create ('/users/ ' , 'GET ' );
834+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
835+
836+ $ response = new Response ('User/Index ' , []);
837+ $ response = $ response ->toResponse ($ request );
838+ $ page = $ response ->getData ();
839+
840+ $ this ->assertSame ('/users/ ' , $ page ->url );
841+ }
842+
843+ public function test_trailing_slashes_in_a_url_with_query_parameters_are_preserved (): void
844+ {
845+ $ request = Request::create ('/users/?page=1&sort=name ' , 'GET ' );
846+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
847+
848+ $ response = new Response ('User/Index ' , []);
849+ $ response = $ response ->toResponse ($ request );
850+ $ page = $ response ->getData ();
851+
852+ $ this ->assertSame ('/users/?page=1&sort=name ' , $ page ->url );
853+ }
854+
855+ public function test_a_url_without_trailing_slash_is_resolved_correctly (): void
856+ {
857+ $ request = Request::create ('/users ' , 'GET ' );
858+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
859+
860+ $ response = new Response ('User/Index ' , []);
861+ $ response = $ response ->toResponse ($ request );
862+ $ page = $ response ->getData ();
863+
864+ $ this ->assertSame ('/users ' , $ page ->url );
865+ }
866+
867+ public function test_a_url_without_trailing_slash_and_query_parameters_is_resolved_correctly (): void
868+ {
869+ $ request = Request::create ('/users?page=1&sort=name ' , 'GET ' );
870+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
871+
872+ $ response = new Response ('User/Index ' , []);
873+ $ response = $ response ->toResponse ($ request );
874+ $ page = $ response ->getData ();
875+
876+ $ this ->assertSame ('/users?page=1&sort=name ' , $ page ->url );
877+ }
830878}
0 commit comments