Я полность с вами соглашусь, что тесты ничего не гарантируют. Но и компиляция, так же точно, не может гарантировать ничего, кроме того, что проект 'собрался'.
Я считаю, что любой код должен читаться как книга, даже ценой возможной неоптимальности решения. С логикой на промисах гораздо приятней работать чем с калбеками. Да, работать с try/catch и другими конструкциями языка можно внутри функции, возвращающей промис. Но этого нельзя делать снаружи этой функции. Это приводит к тому, что код, местами, напоминает код на чистом С, когда вы проверяете result-code после каждой операции. Это отрицательно сказывается на читаемости кода.
|