Тестування Digest-листів у Node.js без шуму у поштовій скриньці
Digest-листи створюють проблеми, коли середовища попереднього перегляду (preview environments) надсилають зведення на одну спільну поштову скриньку.
Ви втрачаєте контроль над тим, яке повідомлення належить до якого білду. Ви не можете визначити, чи є посилання для відписки актуальним. Ви не можете перевірити, чи відповідає шаблон правильному сегменту користувачів.
Ставтеся до QA digest-листів як до цілісного продуктового шляху. JavaScript-додаток планує подію. Node.js рендерить контент. Перевірка пошти підтверджує користувацький досвід. Якщо ви пропустите будь-який етап, ваші тести пройдуть швидко, але не дадуть жодної корисної інформації.
Багато команд рендерить шаблони локально та роблять snapshot HTML. Це не доводить, що читач отримає саме таке повідомлення насправді.
Шум виникає через повторне використання поштової скриньки. Digest за понеділок лежить поруч із повторною спробою за вівторок. Член команди може випадково натиснути посилання не з того повідомлення. Ваш тест показує «зелене» світло, тоді як історія перевірок перетворюється на безлад.
Використовуйте цей простий цикл:
- Тест у браузері запускає сценарій digest-листа для відомого сегмента користувачів.
- Node.js генерує digest, використовуючи реальні дані staging-середовища.
- Тест використовує одну ізольовану скриньку для цього конкретного запуску.
- Раннер відкриває digest і перевіряє блоки зведення.
- Тест перевіряє, чи ведуть посилання на очікуваний хост та чи містять вони потрібні параметри кампанії.
Ставтеся до адрес електронної пошти як до тимчасової інфраструктури. Створюйте тимчасову пошту для кожного сценарію. Це запобігає ситуації, коли один нестабільний (flaky) запуск псує наступний.
Не зупиняйтеся на етапі «повідомлення надійшло». Хороший тест перевіряє такі деталі:
- Завдання ставить у чергу один digest для правильного сегмента.
- Тема листа містить правильну дату.
- Preheader відповідає поточним feature flags.
- Посилання використовують очікуваний хост та UTM-мітки.
- Посилання для відписки ведуть на правильне середовище.
- Для одного й того самого користувача не з'являється дублікатів digest-листів.
Уникайте цих трьох помилок:
- Використання однієї поштової скриньки для CI, preview-білдів та ручного QA.
- Сприйняття відрендереного HTML як кінцевої мети.
- Забування про очищення застарілих тестових акаунтів.
Тримайте свій чек-лист коротким, щоб мати змогу запускати його часто. Ізоляція робить результати зрозумілими, а виправлення помилок — швидшими.
Source: https://dev.to/ryanlee91/how-i-test-nodejs-digest-emails-without-shared-inbox-noise-54fh
