/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Integration/Http/Resources/JsonApi/JsonApiRequestTest.php
77 строк
3 KB
Pratik Bhujel
Honor empty JSON:API sparse fieldsets (#59813)
24 апр 2026, 18:07
Не верифицирован
24 апр 2026, 18:07
b9fc87f
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Integration\Http\Resources\JsonApi; use Illuminate\Http\Resources\JsonApi\JsonApiRequest; use Illuminate\Http\Resources\JsonApi\JsonApiResource; class JsonApiRequestTest extends TestCase { public function testItCanResolveSparseFields() { $request = JsonApiRequest::create(uri: '/?'.http_build_query([ 'fields' => [ 'users' => 'name,email', 'teams' => 'name', ], ])); $this->assertSame(['name', 'email'], $request->sparseFields('users')); $this->assertSame(['name'], $request->sparseFields('teams')); $this->assertSame([], $request->sparseFields('posts')); } public function testItCanResolveEmptySparseFields() { $request = JsonApiRequest::create(uri: '/'); $this->assertSame([], $request->sparseFields('users')); $this->assertSame([], $request->sparseFields('teams')); $this->assertSame([], $request->sparseFields('posts')); } public function testItCanDetermineIfSparseFieldsetWasProvided() { $request = JsonApiRequest::create(uri: '/?'.http_build_query([ 'fields' => [ 'users' => '', ], ])); $this->assertTrue($request->hasSparseFieldset('users')); $this->assertFalse($request->hasSparseFieldset('posts')); } public function testItCanResolveSparseIncluded() { $request = JsonApiRequest::create(uri: '/?'.http_build_query([ 'include' => 'teams,posts.author,posts.comments,profile.user.profile', ])); $this->assertSame(['teams', 'posts', 'profile'], $request->sparseIncluded()); $this->assertSame([], $request->sparseIncluded('teams')); $this->assertSame(['author', 'comments'], $request->sparseIncluded('posts')); $this->assertSame(['user.profile'], $request->sparseIncluded('profile')); } public function testItCanREsolveSparseIncludedWithMaxRelationshipNesting() { JsonApiResource::maxRelationshipDepth(2); $request = JsonApiRequest::create(uri: '/?'.http_build_query([ 'include' => 'teams,posts.author,posts.comments,profile.user.profile', ])); $this->assertSame(['teams', 'posts', 'profile'], $request->sparseIncluded()); $this->assertSame([], $request->sparseIncluded('teams')); $this->assertSame(['author', 'comments'], $request->sparseIncluded('posts')); $this->assertSame(['user'], $request->sparseIncluded('profile')); } public function testItCanResolveEmptySparseIncluded() { $request = JsonApiRequest::create(uri: '/'); $this->assertSame([], $request->sparseIncluded()); } }