Ага. Но зачем тогда вообще юнит тесты писать? e2e дает максимум уверенности, значит писать только их нужно?
юнит-тесты хорошо работают для утильных функций, каких-то апи и тд.
e2e бывает долго раннятся (у нас эта проблема решена, тесты гоняются в лямбдах, поэтому да, мы предпочитаем как можно писать их), немножко дольше обратная связь, в том плане, что от самой ошибки до понимания, что именно сломалось чуть дольше путь.
Интеграционные (под ними я сейчас буду понимать тесты реакт-компонентов аля с enzyme в ноде с jsdom) – такой промежуточный вариант, в котором ты можешь кусочки функциональности тестировать отдельно, эмулируя user input и следя за сайд-эффектами, которые мы ожидаем (например, что-то в лог напишет) или выводом компонента (нажали на кнопку, компонент перерендерился и вывел что-то другое).
"юнит-тесты" для реакт-компонента, типа компонент принял пропы, срендерил другие компоненты с пропами на практике очень много и бестолку писать, пропускает много ошибок, тратит много сил. Тайпскрипт решает половину таких тестов "бесплатно"