From 8d5b8bea4dd754eeced7255c8148fab505930ee6 Mon Sep 17 00:00:00 2001 From: Nick Zeng Date: Mon, 9 Mar 2026 14:12:27 +0800 Subject: [PATCH] update user test --- .../Integration/User/UserControllerTest.php | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/backend/test/Cases/Integration/User/UserControllerTest.php b/backend/test/Cases/Integration/User/UserControllerTest.php index 7ec685d..8074bdb 100644 --- a/backend/test/Cases/Integration/User/UserControllerTest.php +++ b/backend/test/Cases/Integration/User/UserControllerTest.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace HyperfTest\Cases\Integration\User; +use App\Model\Role; use App\Model\User; use HyperfTest\TestCase; use Qbhy\HyperfAuth\AuthManager; @@ -17,21 +18,36 @@ use function Hyperf\Support\make; class UserControllerTest extends TestCase { /** - * 获取认证用的 JWT Token + * 获取认证用的 JWT Token(使用 administrator 角色用户) */ protected function getAuthToken(): string { - $user = $this->fetchUser(static function ($query): void { - $query->where('status', 1); + $admin_role = $this->fetchAdminRole(); + $user = $this->fetchUser(static function ($query) use ($admin_role): void { + $query->where('status', 1)->where('role_id', $admin_role->id); }); if (!$user) { - $this->markTestSkipped('没有可用的活跃用户,无法测试'); + $this->markTestSkipped('没有可用的 administrator 用户,无法测试'); } $auth = make(AuthManager::class); return $auth->guard('jwt')->login($user); } + protected function fetchAdminRole(): Role + { + if (\Swoole\Coroutine::getCid() > 0) { + return Role::query()->where('name', 'administrator')->firstOrFail(); + } + + $role = null; + \Swoole\Coroutine\run(static function () use (&$role): void { + $role = Role::query()->where('name', 'administrator')->firstOrFail(); + }); + + return $role; + } + /** * 获取认证请求头 */