diff --git a/src/Service/ExtendService.php b/src/Service/ExtendService.php index eac52ee..60e1239 100644 --- a/src/Service/ExtendService.php +++ b/src/Service/ExtendService.php @@ -24,13 +24,10 @@ class ExtendService array|string|null $params = null ): array { $params ??= $request?->getQueryParams(); - $extends = $params['extends'] ?? null; - if (!empty($extends)) { - $extends = explode(',', $extends); - return Context::set(self::class, array_map('trim', $extends)); - } + $extends = explode(',', $params['extends'] ?? ''); + $extends = array_map('trim', $extends); - return []; + return Context::set(self::class, array_filter($extends)); } @@ -57,6 +54,6 @@ class ExtendService */ public function hasExtend(string $field): bool { - return $this->utils->inArray($field, Context::get(self::class)); + return $this->utils->inArray($field, Context::get(self::class) ?? []); } } diff --git a/tests/Unit/ExtendServiceTest.php b/tests/Unit/ExtendServiceTest.php index 3532082..9235ca7 100644 --- a/tests/Unit/ExtendServiceTest.php +++ b/tests/Unit/ExtendServiceTest.php @@ -9,12 +9,10 @@ namespace Singularity\HDK\Test\Core\Unit; +use Hyperf\Context\Context; use Singularity\HDK\Core\Service\ExtendService; use Singularity\HDK\Core\Service\UtilsService; -$service = new ExtendService(new UtilsService()); - - /** @var ExtendService $service */ $service = make(ExtendService::class, ['utils' => new UtilsService()]); it('asserts no parameters can be parsed.', function (ExtendService $service, $params) { @@ -23,7 +21,7 @@ it('asserts no parameters can be parsed.', function (ExtendService $service, $pa $params ); $result = $service->getExtends(); - expect($result)->toBeArray()->toHaveCount(0)->toBe([]); + expect($result)->toBeArray()->toBe([])->toHaveCount(0)->toBe([]); })->with([ [$service, null], [$service, ''], @@ -32,6 +30,11 @@ it('asserts no parameters can be parsed.', function (ExtendService $service, $pa [$service, ['extends' => null]], ]); +it('asserts has no specify extend', function () use ($service) { + Context::destroy(ExtendService::class); + expect($service->hasExtend('a'))->toBeFalse(); +})->depends('it asserts query parameters can be parsed.'); + it('asserts query parameters can be parsed.', function () use ($service) { $result = $service->parse( null, @@ -44,19 +47,21 @@ it('asserts query parameters can be parsed.', function () use ($service) { }); it('asserts has extends', function () use ($service) { + Context::set(ExtendService::class, ['a', 'b']); expect($service->hasExtends())->toBeTrue(); }); it('asserts has specify extend', function () use ($service) { + Context::set(ExtendService::class, ['a', 'b']); expect($service->hasExtend('a'))->toBeTrue() ->and($service->hasExtend('b'))->toBeTrue() ->and($service->hasExtend('c'))->toBeFalse(); })->depends('it asserts query parameters can be parsed.'); -it('asserts parsed extends', function () use ($service) { - $extends = $service->getExtends(); - expect($extends)->toBeArray()->toMatchArray([ - 'a', - 'b', - ]); -})->depends('it asserts query parameters can be parsed.'); +// it('asserts parsed extends', function () use ($service) { +// $extends = $service->getExtends(); +// expect($extends)->toBeArray()->toMatchArray([ +// 'a', +// 'b', +// ]); +// })->depends('it asserts query parameters can be parsed.');