|
12 | 12 | use Illuminate\Support\Collection;
|
13 | 13 | use Illuminate\Support\Fluent;
|
14 | 14 | use Illuminate\View\View;
|
| 15 | +use Inertia\LazyProp; |
15 | 16 | use Inertia\Response;
|
16 | 17 |
|
17 | 18 | class ResponseTest extends TestCase
|
@@ -182,4 +183,40 @@ public function test_xhr_partial_response()
|
182 | 183 | $this->assertSame('/user/123', $page->url);
|
183 | 184 | $this->assertSame('123', $page->version);
|
184 | 185 | }
|
| 186 | + |
| 187 | + public function test_lazy_props_are_not_included_by_default() |
| 188 | + { |
| 189 | + $request = Request::create('/users', 'GET'); |
| 190 | + $request->headers->add(['X-Inertia' => 'true']); |
| 191 | + |
| 192 | + $lazyProp = new LazyProp(function () { |
| 193 | + return 'A lazy value'; |
| 194 | + }); |
| 195 | + |
| 196 | + $response = new Response('Users', ['users' => [], 'lazy' => $lazyProp], 'app', '123'); |
| 197 | + $response = $response->toResponse($request); |
| 198 | + $page = $response->getData(); |
| 199 | + |
| 200 | + $this->assertSame([], $page->props->users); |
| 201 | + $this->assertObjectNotHasAttribute('lazy', $page->props); |
| 202 | + } |
| 203 | + |
| 204 | + public function test_lazy_props_are_included_in_partial_reload() |
| 205 | + { |
| 206 | + $request = Request::create('/users', 'GET'); |
| 207 | + $request->headers->add(['X-Inertia' => 'true']); |
| 208 | + $request->headers->add(['X-Inertia-Partial-Component' => 'Users']); |
| 209 | + $request->headers->add(['X-Inertia-Partial-Data' => 'lazy']); |
| 210 | + |
| 211 | + $lazyProp = new LazyProp(function () { |
| 212 | + return 'A lazy value'; |
| 213 | + }); |
| 214 | + |
| 215 | + $response = new Response('Users', ['users' => [], 'lazy' => $lazyProp], 'app', '123'); |
| 216 | + $response = $response->toResponse($request); |
| 217 | + $page = $response->getData(); |
| 218 | + |
| 219 | + $this->assertObjectNotHasAttribute('users', $page->props); |
| 220 | + $this->assertSame('A lazy value', $page->props->lazy); |
| 221 | + } |
185 | 222 | }
|
0 commit comments