Тестирование Nodejs Digest-писем без лишнего шума во входящих
Digest-письма создают проблемы, когда среды предварительного просмотра (preview environments) отправляют сводки на один общий почтовый ящик.
Вы теряете понимание того, какое сообщение относится к какой сборке. Вы не можете определить, актуальна ли ссылка для отписки. Вы можете не заметить, соответствует ли шаблон сегменту пользователя.
Я рассматриваю QA digest-писем как полноценный путь продукта. JavaScript-приложение планирует событие. Node.js рендерит контент. Проверка входящих подтверждает итоговый пользовательский опыт.
Многие команды допускают следующие ошибки:
- Они используют один почтовый ящик для множества запусков. Digest за понедельник лежит рядом со сборкой за вторник.
- Они полагаются на старые данные стейджинга с временными строками email-адресов.
- Они считают рендеринг HTML финальной точкой. Снапшоты HTML проходят тесты, даже если реальные данные неверны.
Хороший тест должен подтверждать реальное сообщение, которое получает читатель. Вместо этого используйте такой простой цикл:
- Тестовый триггер создает digest для конкретного сегмента пользователей.
- Node.js генерирует digest, используя реальные данные стейджинга.
- Тест использует один изолированный почтовый ящик для конкретного запуска.
- Раннер открывает digest и проверяет блоки сводки.
- Тест проверяет, что ссылки ведут на правильный хост и содержат нужные параметры кампании.
Относитесь к email-адресам как к расходной инфраструктуре. Создавайте временный почтовый аккаунт для каждого сценария. Это предотвратит ситуацию, когда один нестабильный (flaky) запуск портит результаты следующего.
Полезный тест digest-писем проверяет следующие детали:
- Запланированная задача ставит в очередь один digest для правильного сегмента.
- В теме письма указана верная дата.
- Прехедер соответствует текущим feature flags.
- Ссылки используют правильный хост, UTM-метки и локаль.
- Ссылки для отписки ведут в нужную среду.
- Для одного и того же пользователя не создается дубликатов digest-писем.
Перестаньте использовать один почтовый ящик для CI, preview-сборок и ручного QA. Поначалу это кажется эффективным, но позже приводит к ложноположительным результатам.
Изоляция ускоряет исправление ошибок. Когда digest-письмо не проходит тест, вы точно знаете, в чем проблема: в планировщике, рендерере или в самом сообщении.
Источник: https://dev.to/ryanlee91/how-i-test-nodejs-digest-emails-without-shared-inbox-noise-54fh
