test(admin): clear sync errors filtered respects subscription id

This commit is contained in:
萝卜
2026-03-10 13:03:16 +00:00
parent 36c8657414
commit 10a23180d5

View File

@@ -90,6 +90,55 @@ class AdminPlatformOrderClearSyncErrorsFilteredTest extends TestCase
'status' => 'pending',
])->assertRedirect();
// 增加一条带 subscription_id 的失败订单,用于验证 site_subscription_id 精确过滤生效
$sub = \App\Models\SiteSubscription::query()->create([
'merchant_id' => $merchant->id,
'plan_id' => $plan->id,
'status' => 'activated',
'source' => 'manual',
'subscription_no' => 'SUB_CLEAR_ERR_0001',
'plan_name' => $plan->name,
'billing_cycle' => $plan->billing_cycle,
'period_months' => 1,
'amount' => 1,
'starts_at' => now()->subDay(),
'ends_at' => now()->addMonth(),
'activated_at' => now()->subDay(),
]);
$failedWithSub = PlatformOrder::query()->create([
'merchant_id' => $merchant->id,
'plan_id' => $plan->id,
'site_subscription_id' => $sub->id,
'order_no' => 'PO_CLEAR_ERR_SUB_0001',
'order_type' => 'renewal',
'status' => 'pending',
'payment_status' => 'unpaid',
'plan_name' => $plan->name,
'billing_cycle' => $plan->billing_cycle,
'period_months' => 1,
'quantity' => 1,
'payable_amount' => 1,
'paid_amount' => 0,
'placed_at' => now(),
'meta' => [
'subscription_activation_error' => [
'message' => '模拟失败SUB',
'at' => now()->toDateTimeString(),
'admin_id' => 1,
],
],
]);
// 仅清理指定订阅ID范围内的失败标记只清掉 failedWithSub
$this->post('/admin/platform-orders/clear-sync-errors', [
'scope' => 'filtered',
'site_subscription_id' => (string) $sub->id,
])->assertRedirect();
$failedWithSub->refresh();
$this->assertEmpty(data_get($failedWithSub->meta, 'subscription_activation_error'));
$failedA->refresh();
$failedB->refresh();