From afdca18c67150e07b9d98bb3cd5b4437922f5bab Mon Sep 17 00:00:00 2001 From: Hank Date: Tue, 16 Jun 2026 19:14:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(tests):=20=E5=90=8C=E6=AD=A5=20Feature=20te?= =?UTF-8?q?st=20=E8=88=87=20provider-verification-workflow=20=E6=9E=B6?= =?UTF-8?q?=E6=A7=8B=E8=AE=8A=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit provider-verification-workflow (#36) 在 feature-test-coverage (#38) merge 前 已將 is_verified 欄位替換為 verification_status 狀態機,並移除 toggle-verified 路由。 - 五個 Feature test 的 makeProvider helper 改用 verification_status='approved' (原 is_verified 已從 provider_profiles 欄位移除,靜默忽略導致 422/404) - AdminUserManagementTest: toggle-verified 案例改為測試新的 approve 端點 (PUT /admin/verifications/{userId}/approve,需 pending 狀態才可核准) Co-Authored-By: Claude Sonnet 4.6 --- tests/Feature/AdminUserManagementTest.php | 18 +++++++++--------- tests/Feature/BookingListTest.php | 2 +- tests/Feature/NotificationTriggerTest.php | 2 +- tests/Feature/ProviderOfferCrudTest.php | 2 +- tests/Feature/ProviderScheduleCrudTest.php | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/Feature/AdminUserManagementTest.php b/tests/Feature/AdminUserManagementTest.php index 25fe966..622e7c1 100644 --- a/tests/Feature/AdminUserManagementTest.php +++ b/tests/Feature/AdminUserManagementTest.php @@ -31,10 +31,10 @@ class AdminUserManagementTest extends TestCase return $member; } - private function makeProvider(bool $isVerified = false): User + private function makeProvider(string $verificationStatus = 'unsubmitted'): User { $provider = User::factory()->create(['role' => 'provider']); - ProviderProfile::create(['user_id' => $provider->id, 'is_verified' => $isVerified]); + ProviderProfile::create(['user_id' => $provider->id, 'verification_status' => $verificationStatus]); return $provider; } @@ -89,21 +89,21 @@ class AdminUserManagementTest extends TestCase ]); } - // ── toggle-verified ────────────────────────────────────── + // ── approve ───────────────────────────────────────────── - public function test_admin_toggles_provider_verified_status(): void + public function test_admin_approves_provider_verification(): void { $admin = $this->makeAdmin(); - $provider = $this->makeProvider(isVerified: false); + $provider = $this->makeProvider(verificationStatus: 'pending'); $this->actingAs($admin) - ->putJson("/api/admin/providers/{$provider->id}/toggle-verified") + ->putJson("/api/admin/verifications/{$provider->id}/approve") ->assertOk() - ->assertJsonPath('data.is_verified', true); + ->assertJsonPath('status', true); $this->assertDatabaseHas('provider_profiles', [ - 'user_id' => $provider->id, - 'is_verified' => true, + 'user_id' => $provider->id, + 'verification_status' => 'approved', ]); } diff --git a/tests/Feature/BookingListTest.php b/tests/Feature/BookingListTest.php index c4a1798..e933263 100644 --- a/tests/Feature/BookingListTest.php +++ b/tests/Feature/BookingListTest.php @@ -30,7 +30,7 @@ class BookingListTest extends TestCase private function makeProviderWithSchedule(): array { $provider = User::factory()->create(['role' => 'provider']); - ProviderProfile::create(['user_id' => $provider->id, 'is_verified' => true]); + ProviderProfile::create(['user_id' => $provider->id, 'verification_status' => 'approved']); $offer = DivingOffer::create([ 'provider_id' => $provider->id, diff --git a/tests/Feature/NotificationTriggerTest.php b/tests/Feature/NotificationTriggerTest.php index 3797b0e..d36f1f8 100644 --- a/tests/Feature/NotificationTriggerTest.php +++ b/tests/Feature/NotificationTriggerTest.php @@ -43,7 +43,7 @@ class NotificationTriggerTest extends TestCase private function makeProvider(): User { $provider = User::factory()->create(['role' => 'provider']); - ProviderProfile::create(['user_id' => $provider->id, 'is_verified' => true]); + ProviderProfile::create(['user_id' => $provider->id, 'verification_status' => 'approved']); return $provider; } diff --git a/tests/Feature/ProviderOfferCrudTest.php b/tests/Feature/ProviderOfferCrudTest.php index bf47156..0c0d701 100644 --- a/tests/Feature/ProviderOfferCrudTest.php +++ b/tests/Feature/ProviderOfferCrudTest.php @@ -21,7 +21,7 @@ class ProviderOfferCrudTest extends TestCase private function makeProvider(): User { $provider = User::factory()->create(['role' => 'provider']); - ProviderProfile::create(['user_id' => $provider->id, 'is_verified' => true]); + ProviderProfile::create(['user_id' => $provider->id, 'verification_status' => 'approved']); return $provider; } diff --git a/tests/Feature/ProviderScheduleCrudTest.php b/tests/Feature/ProviderScheduleCrudTest.php index f549de9..1104199 100644 --- a/tests/Feature/ProviderScheduleCrudTest.php +++ b/tests/Feature/ProviderScheduleCrudTest.php @@ -26,7 +26,7 @@ class ProviderScheduleCrudTest extends TestCase private function makeProvider(): User { $provider = User::factory()->create(['role' => 'provider']); - ProviderProfile::create(['user_id' => $provider->id, 'is_verified' => true]); + ProviderProfile::create(['user_id' => $provider->id, 'verification_status' => 'approved']); return $provider; }