Тесты React проходят с неправильными реквизитами

#reactjs #typescript #create-react-app #react-testing-library

#reactjs #typescript #create-react-app #react-testing-library

Вопрос:

Мы загрузили проект create react app с использованием typescript и используем react-testing-library для наших модульных тестов.

Мы заметили, что, поскольку мы обновили наши реквизиты и типы, тесты все еще выполняются и проходят, что действительно очень беспокоит.

В качестве примера у нас есть className, который является typescript DU . В тесте используется неожиданное значение для className, которое показано на этом снимке экрана:

ошибка typescript при наведении курсора мыши

Но тест все еще выполняется и отображается как успешный. Если я открою вкладку VS CODE problems, она правильно отображается как проблема:

вкладка проблемы с кодом vs

Вопрос в том, почему тест все еще создается и проходит, требуется ли дополнительная настройка для получения ошибок typescript для работы с jest / react-testing-library?

Я бы хотел, чтобы эти ошибки предотвращали запуск тестов в первую очередь, чтобы выявить проблему с реквизитами.

Это всего лишь один пример, у нас были другие тесты, которые требовали, чтобы реквизит полностью отсутствовал, но тесты все еще выполняются и проходят

Применяется к сценариям реагирования 3.4.1 и 4.0

Коллега любезно предоставил пример репозитория на github

Комментарии:

1. Можете ли вы добавить образец теста, который проходил, даже если он содержит неверные данные?

2. сейчас мы собираемся запустить новый проект, чтобы попытаться воспроизвести, хотим убедиться, что мы ничего не сломали! Будет загружен после готовности.

3. добавлено демонстрационное репозиторий, ссылка в вопросе

Ответ №1:

Один из вариантов — запустить компилятор TypeScript для проверки типов перед запуском тестов. Например, обновите сценарий «test» в package.json :

 "test": "tsc --noEmit amp;amp; react-scripts test",
  

Комментарии:

1. ах, спасибо, есть идеи, почему это не включено по умолчанию или почему npm start выдает ошибки?

2. @Phil На основе обсуждения в github.com/facebook/create-react-app/issues/5626 это известное ограничение. Сценарии «start» и «build» запускают компилятор TypeScript, но в конфигурации Create React App в настоящее время не выполняется проверка типа при запуске тестов.