Тест про подписку падает по ночам в CI
В доменном слое:
class SubscriptionUseCase {
bool isExpired(Subscription s) => DateTime.now().isAfter(s.endsAt);
}
Тест «подписка, истекающая завтра, считается активной» проходит днём, но иногда падает на ночных прогонах пайплайна. Тестовые данные готовятся относительно текущей даты.
Как правильно поступить?
- Сдвинуть даты в тестовых данных на год вперёд — падать перестанет
- Считать текущее время внешней зависимостью и передавать источник времени в use case, чтобы тест сам задавал «сейчас»
- Пометить тест как нестабильный и отключить, а подписки проверять вручную перед релизом
- Зафиксировать часовой пояс раннера в конфигурации пайплайна — это устраняет причину, ведь тест меняет вердикт именно на границе суток
