Skip to content

Commit 9d3d84d

Browse files
authored
Add test for deferred metadata on subsequent request (#799)
1 parent bb52e65 commit 9d3d84d

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

tests/ResponseTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)