Как тестировать TypeScript?

subj
у кого есть опыт с subj, в том числе на серверной стороне с Node.JS?
Какие используются инструменты? На чем пишутся тесты на TS или JS?

Тесты для тайпскрипта лучше писать на тайпскрипте: иначе статический анализ не будет работать для тестов, если изменится сигнатура вызова, ты никак не узнаешь из js теста что он перестал быть актуальным (хотя он продолжит работать из-за автоматического приведения типов).

На большом проекте я использовал сетап из karma для запуска тестов, вебпак плагина для кармы для сборки тестов, и в рамках вебпака уже была настроена компиляция ts. Обрати внимание при настройке на то как отображаются строки с ошибками из ts (нужно чтобы runner тестов использовал sourcemaps, и чтобы они генерировались при компиляции ts).

Для описания самих тестов использовал jasmine. Подойдет любая из распространенных библиотек описания тестов (та же mocha). + тайпингзы для нее. Тоже самое с библиотекой assertion-ов.

На проекте попроще (из одного модуля), не заморачивался с настройкой компиляторов. Есть решение через установку ts-node и пропускание файлов через этот модуль. Тесты пишешь в ts в mocha, и запускаешь тесты так:

"test": "./node_modules/.bin/mocha --require ./node_modules/ts-node/register ./test/*.ts",

чтобы тесты перезапускались после изменений файлов, я выполнял эту команду с помощью nodemon (его тоже ставишь локально зависимостью в проект):

"test-dev": "./node_modules/.bin/nodemon --exec \"npm test\"",