@@ -320,6 +320,68 @@ public function test_server_response_with_defer_and_deep_merge_props(): void
320
320
$ this ->assertSame ('<div id="app" data-page="{"component":"User\/Edit","props":{"user":{"name":"Jonathan"},"bar":"bar value"},"url":"\/user\/123","version":"123","clearHistory":false,"encryptHistory":false,"deepMergeProps":["foo","bar"],"deferredProps":{"default":["foo"]}}"></div> ' , $ view ->render ());
321
321
}
322
322
323
+ public function test_exclude_merge_props_from_partial_only_response (): void
324
+ {
325
+ $ request = Request::create ('/user/123 ' , 'GET ' );
326
+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
327
+ $ request ->headers ->add (['X-Inertia-Partial-Component ' => 'User/Edit ' ]);
328
+ $ request ->headers ->add (['X-Inertia-Partial-Data ' => 'user ' ]);
329
+
330
+ $ user = ['name ' => 'Jonathan ' ];
331
+ $ response = new Response (
332
+ 'User/Edit ' ,
333
+ [
334
+ 'user ' => $ user ,
335
+ 'foo ' => new MergeProp ('foo value ' ),
336
+ 'bar ' => new MergeProp ('bar value ' ),
337
+ ],
338
+ 'app ' ,
339
+ '123 '
340
+ );
341
+ $ response = $ response ->toResponse ($ request );
342
+ $ page = $ response ->getData ();
343
+
344
+ $ props = get_object_vars ($ page ->props );
345
+
346
+ $ this ->assertInstanceOf (JsonResponse::class, $ response );
347
+
348
+ $ this ->assertSame ('Jonathan ' , $ props ['user ' ]->name );
349
+ $ this ->assertArrayNotHasKey ('foo ' , $ props );
350
+ $ this ->assertArrayNotHasKey ('bar ' , $ props );
351
+ $ this ->assertFalse (isset ($ page ->mergeProps ));
352
+ }
353
+
354
+ public function test_exclude_merge_props_from_partial_except_response (): void
355
+ {
356
+ $ request = Request::create ('/user/123 ' , 'GET ' );
357
+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
358
+ $ request ->headers ->add (['X-Inertia-Partial-Component ' => 'User/Edit ' ]);
359
+ $ request ->headers ->add (['X-Inertia-Partial-Except ' => 'foo ' ]);
360
+
361
+ $ user = ['name ' => 'Jonathan ' ];
362
+ $ response = new Response (
363
+ 'User/Edit ' ,
364
+ [
365
+ 'user ' => $ user ,
366
+ 'foo ' => new MergeProp ('foo value ' ),
367
+ 'bar ' => new MergeProp ('bar value ' ),
368
+ ],
369
+ 'app ' ,
370
+ '123 '
371
+ );
372
+ $ response = $ response ->toResponse ($ request );
373
+ $ page = $ response ->getData ();
374
+
375
+ $ props = get_object_vars ($ page ->props );
376
+
377
+ $ this ->assertInstanceOf (JsonResponse::class, $ response );
378
+
379
+ $ this ->assertSame ('Jonathan ' , $ props ['user ' ]->name );
380
+ $ this ->assertArrayNotHasKey ('foo ' , $ props );
381
+ $ this ->assertArrayHasKey ('bar ' , $ props );
382
+ $ this ->assertSame (['bar ' ], $ page ->mergeProps );
383
+ }
384
+
323
385
public function test_xhr_response (): void
324
386
{
325
387
$ request = Request::create ('/user/123 ' , 'GET ' );
0 commit comments