@@ -320,6 +320,64 @@ 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 ->assertFalse (isset ($ page ->mergeProps ));
350
+ }
351
+
352
+ public function test_exclude_merge_props_from_partial_except_response (): void
353
+ {
354
+ $ request = Request::create ('/user/123 ' , 'GET ' );
355
+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
356
+ $ request ->headers ->add (['X-Inertia-Partial-Component ' => 'User/Edit ' ]);
357
+ $ request ->headers ->add (['X-Inertia-Partial-Except ' => 'foo ' ]);
358
+
359
+ $ user = ['name ' => 'Jonathan ' ];
360
+ $ response = new Response (
361
+ 'User/Edit ' ,
362
+ [
363
+ 'user ' => $ user ,
364
+ 'foo ' => new MergeProp ('foo value ' ),
365
+ 'bar ' => new MergeProp ('bar value ' ),
366
+ ],
367
+ 'app ' ,
368
+ '123 '
369
+ );
370
+ $ response = $ response ->toResponse ($ request );
371
+ $ page = $ response ->getData ();
372
+
373
+ $ props = get_object_vars ($ page ->props );
374
+
375
+ $ this ->assertInstanceOf (JsonResponse::class, $ response );
376
+
377
+ $ this ->assertSame ('Jonathan ' , $ props ['user ' ]->name );
378
+ $ this ->assertSame (['bar ' ], $ page ->mergeProps );
379
+ }
380
+
323
381
public function test_xhr_response (): void
324
382
{
325
383
$ request = Request::create ('/user/123 ' , 'GET ' );
0 commit comments