@@ -866,4 +866,52 @@ public function test_the_page_url_doesnt_double_up(): void
866866
867867 $ this ->assertSame ('/subpath/product/123 ' , $ page ->url );
868868 }
869+
870+ public function test_trailing_slashes_in_a_url_are_preserved (): void
871+ {
872+ $ request = Request::create ('/users/ ' , 'GET ' );
873+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
874+
875+ $ response = new Response ('User/Index ' , []);
876+ $ response = $ response ->toResponse ($ request );
877+ $ page = $ response ->getData ();
878+
879+ $ this ->assertSame ('/users/ ' , $ page ->url );
880+ }
881+
882+ public function test_trailing_slashes_in_a_url_with_query_parameters_are_preserved (): void
883+ {
884+ $ request = Request::create ('/users/?page=1&sort=name ' , 'GET ' );
885+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
886+
887+ $ response = new Response ('User/Index ' , []);
888+ $ response = $ response ->toResponse ($ request );
889+ $ page = $ response ->getData ();
890+
891+ $ this ->assertSame ('/users/?page=1&sort=name ' , $ page ->url );
892+ }
893+
894+ public function test_a_url_without_trailing_slash_is_resolved_correctly (): void
895+ {
896+ $ request = Request::create ('/users ' , 'GET ' );
897+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
898+
899+ $ response = new Response ('User/Index ' , []);
900+ $ response = $ response ->toResponse ($ request );
901+ $ page = $ response ->getData ();
902+
903+ $ this ->assertSame ('/users ' , $ page ->url );
904+ }
905+
906+ public function test_a_url_without_trailing_slash_and_query_parameters_is_resolved_correctly (): void
907+ {
908+ $ request = Request::create ('/users?page=1&sort=name ' , 'GET ' );
909+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
910+
911+ $ response = new Response ('User/Index ' , []);
912+ $ response = $ response ->toResponse ($ request );
913+ $ page = $ response ->getData ();
914+
915+ $ this ->assertSame ('/users?page=1&sort=name ' , $ page ->url );
916+ }
869917}
0 commit comments