Компилятор должен отлавливать недостающие case'ы состояний, а не ваша команда QA
Добавить новое состояние в машину легко. Помнить об обновлении каждого switch — нет. Вот как заставить TypeScript отказаться компилироваться, если вы забудете case.
Машины состояний начинаются чистыми. Три значения, три ветки switch. Затем логика повторных попыток добавляет четвёртое состояние. Частичный сбой — пятое. Вы…