@@ -626,6 +626,28 @@ public function test_xhr_response(): void
626626 $ this ->assertSame ('123 ' , $ page ->version );
627627 }
628628
629+ public function test_xhr_response_with_deferred_props_includes_deferred_metadata (): void
630+ {
631+ $ request = Request::create ('/user/123 ' , 'GET ' );
632+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
633+
634+ $ response = new Response ('User/Edit ' , [
635+ 'user ' => ['name ' => 'Jonathan ' ],
636+ 'results ' => new DeferProp (fn () => ['data ' => ['item1 ' , 'item2 ' ]], 'default ' ),
637+ ], 'app ' , '123 ' );
638+ /** @var JsonResponse $response */
639+ $ response = $ response ->toResponse ($ request );
640+ $ page = $ response ->getData ();
641+
642+ $ this ->assertInstanceOf (JsonResponse::class, $ response );
643+ $ this ->assertSame ('User/Edit ' , $ page ->component );
644+ $ this ->assertSame ('Jonathan ' , $ page ->props ->user ->name );
645+ $ this ->assertFalse (property_exists ($ page ->props , 'results ' ));
646+ $ this ->assertSame ('/user/123 ' , $ page ->url );
647+ $ this ->assertSame ('123 ' , $ page ->version );
648+ $ this ->assertEquals ((object ) ['default ' => ['results ' ]], $ page ->deferredProps );
649+ }
650+
629651 public function test_resource_response (): void
630652 {
631653 $ request = Request::create ('/user/123 ' , 'GET ' );
0 commit comments