Нормальна ли схема с единой точкой входа
В принципе нормально, все так и делают вобщем то.
ведь, если количество модулей перевалит за 10
Всегда можно вынести что-то в отдельный модуль. Руководствуйтесь здравым смыслом, снижайте связанность (вообще почитайте про low coupling и high cohesion для более адекватной организации модулей).
вешать события на элементы
А ваши модули с табами и т.д. что делают тогда?
Или стоит создать отдельную страницу, на которой будут запускаться тесты mocha на основе уже собранного JS проекта?
Это наиболее удобный вариант. Так же помимо фэнтома рассмотрите вариант с webdriver io, как самый честный вариант тестирования. Медленно... но чтож поделать если вы решили UI тестить (а точнее UI элементы).
Пока я вижу следующую схему: mocha + jsdom
Это подходит для своего рода быстрых смоук тестов. К сожалению jsdom только имитирует поведение реальных браузеров, так что лучше тестировать сразу в них. Оно внезапно может различаться.
если моя функция не предназначена для работы с DOM — я должен снова вернуться к unit-тестам.
Именно так. Если вам не нужен DOM - старые добные юнит тесты.
Имеет ли вообще смысл тестировать, скажем так, такой примитивный код?
Имеет смысл тестировать все, что может сломаться. Все что мутирует состояние, все что содержит какую-то логику. Тестировать нет смысла тупой код, который всего-лишь делигирует ответственность. Ну то есть просто проксирует вызовы например. И если там внутри нет никаких ифов и это не декораторы/адаптеры - то тестировать уже не обязательно. Но все это - здравый смысл. В целом же вы должны покрывать тестами вообще все. Потому что вы может и не сломаете - а кто-то запросто.
Возможно у кого-то завалялся репозиторий с похожим кейсом?
Рекомендую вам просто отказаться от прямой работы с DOM. Мне дико нравится подход ангуляра к построению приложений. В нем мы тестируем 10% директив, которым приходится работать с DOM, а все остальное - просто подготовка состояния. Далее в дело вступают биндинги, которые и так оттестированы, и декларативное представление, которое по природе своей тестировать смысла нет.