Goal:
Сделать инструмент для тестирования корректности работы почтовых рассылок, с апи, которое можно было бы использовать в e2e тестах.
Userstorie
Я как пользователь хочу проверить флоу регистрации на продукте. Для этого я в форме регистрации на продукте ввожу любой емейл на домене тестбокса. После регистрации я могу перейти на домен тестбокса и увидеть полученное письмо.
Tech
Я хочу использовать CloudFlare email workers для того, чтобы получать письма привязанные к тестовому домену. Полученные письма я хочу складывать в CloudFlare KV (к примеру на 3 часа). Воркер может быть привязан к разным доменам. Отдельный микропроект - сайт\апи просмотра данных из KV.
mailbox.com/ - страничка с описанием как работает и списком подключенных тест доменов (текст), дока с контрактами, ссылки на страницы. Для оформления используем picocss или аналог (максимально просто).
- mailbox/list - страничка на которой мы рендерим последние письма которые есть у нас в KV (без пагинации, максимально просто). К примеру
| data | recipient | sender | subject | link to content |
|---|
отсортированный по убыванию даты
-
mailbox/api/list - апи метод для наполнения страницы, и он же для e2e, должен возвращать все то-же, но в json и с таймстампами вместо красивой даты\времени
-
mailbox/list/([email protected]) - страница аналогичная list, но с фильтром по получателю (поддерживать глобы желательно, типа *)
-
mailbox/api/list/([email protected]) - аналогичный апи метод
-
mailbox/email/[mailId] - страничка с информацией о письме (когда,кто, кому отправил + ссылки на контент)
-
mailbox/api/email/[mailId] - комплиментарный api метод
-
mailbox/email/[mailId]/html - отрендеренный в html контент страниц с типом html
-
mailbox/api/email/[mailId]/html - json encoded хтмл с текстом письма
-
mailbox/email/[mailId]/text - отрендеренный в html контент страниц c типом txt
-
mailbox/api/email/[mailId]/text - json encoded тхт с текстом письма
Deliverables
Код складываем на github cat, в монорепу. Воркер складываем в отдельную папку, он не имеет CI/CD. Для Pages используем готовый CI/CD встроенный в гитхаб