Тестування Digest-листів у Node.js без зайвого шуму у поштовій скриньці
Digest-листи створюють проблеми, коли середовища попереднього перегляду (preview environments) надсилають зведення на одну спільну поштову скриньку.
Ви втрачаєте розуміння того, яке повідомлення належить до якого білду. Ви не можете визначити, чи є посилання на відписку актуальним. Ви можете пропустити момент, коли шаблон не відповідає сегменту користувачів.
Я розглядаю QA digest-листів як шлях продукту. JavaScript-додаток планує подію. Node.js рендерить контент. Перевірка поштової скриньки підтверджує кінцевий досвід користувача.
Багато команд припускаються таких помилок:
- Вони використовують одну скриньку для багатьох запусків. Digest за понеділок лежить поруч із білдом за вівторок.
- Вони покладаються на застарілі дані стейджингу з тимчасовими рядками електронних адрес.
- Вони вважають відрендерений HTML фінальною точкою. Снапшоти HTML проходять перевірку, навіть якщо реальні дані некоректні.
Хороший тест має підтвердити, що саме отримує читач. Замість цього використовуйте такий простий цикл:
- Тестовий тригер створює digest для конкретного сегмента користувачів.
- Node.js генерує digest, використовуючи реальні дані стейджингу.
- Тест використовує одну ізольовану скриньку для цього конкретного запуску.
- Раннер відкриває digest і перевіряє блоки зведення.
- Тест перевіряє, чи ведуть посилання на правильний хост і чи містять вони параметри кампанії.
Ставтеся до адрес електронної пошти як до тимчасової інфраструктури. Створюйте тимчасовий поштовий акаунт для кожного сценарію. Це запобігає ситуації, коли один нестабільний (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
