В сервисе доставки еды мы с командой столкнулись с задачей написания E2E-тестов. Главный вызов был в том, что для тестирования сущностей клиента, курьера и ресторана нужно действовать от имени других сущностей – чтобы ресторан был онлайн, курьеры были в городе и т.д.
Сначала попробовали подход с моками и фальшивым API, но это команду не устроило, потому что тестировалось только мобильное приложение и в искусственных условиях. Позже создали (и удачно) библиотеку, которая через API-вызовы позволяет симулировать все действующие лица в системе.
Запуск кода
Код писался под:
- node@20
- npm@10
git clone https://github.com/vvscode/talk--heizenbug2023--user-objects
cd talk--heizenbug2023--user-objects
npm install
npm run testКаждый класс проверен по-отдельности. Если будут ошибки (почти наверняка), которые хочется победить - issue is welcome, чем смогу помогу. Но с большего представленный код является концептом, написанным для демонстрации подхода, чтобы не нарушать NDA.