fix(billing-v2-c): per-tenant Mail-фильтр в idempotent-тесте sweep-job
liderra_testing persistent (RefreshDatabase off) — DemoSeeder тенанты могут попасть в sweep и тоже получить BalanceFrozenMail. Без per-tenant фильтра Mail::assertNotQueued() ловил 154 фоновых письма и валил тест. Логика BalancePreflightSweepJob корректна — фикс только в test isolation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -56,7 +56,9 @@ it('is idempotent — does not re-freeze already frozen tenant', function () {
|
||||
|
||||
(new BalancePreflightSweepJob)->handle();
|
||||
|
||||
// Дата заморозки не перезаписана, повторного письма нет.
|
||||
// Дата заморозки не перезаписана; для ЭТОГО tenant повторного письма нет.
|
||||
// NB: per-tenant фильтр, т.к. liderra_testing persistent (DemoSeeder тенанты
|
||||
// могут попасть в sweep и тоже получить BalanceFrozenMail — не наш ответ).
|
||||
expect($tenant->fresh()->frozen_by_balance_at->timestamp)->toBe($frozenAt->timestamp);
|
||||
Mail::assertNotQueued(BalanceFrozenMail::class);
|
||||
Mail::assertNotQueued(BalanceFrozenMail::class, fn ($mail) => $mail->tenant->id === $tenant->id);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user