Подтвердить что ты не робот

Карма и Реакт, имеют предупреждения, которые вызывают ошибки

Я использую Karma с mocha для проверки моего React. У меня есть некоторые предупреждения, когда PropTypes не совпадают. Однако было бы действительно интересно, чтобы эти предупреждения вызывали фактическую ошибку, чтобы отслеживать тест и исправлять его.

Вы знаете, как это может быть достигнуто?

4b9b3361

Ответ 1

Вы можете заменить метод console.warn своим и бросить, когда предоставленное сообщение соответствует определенному шаблону.

let warn = console.warn;
console.warn = function(warning) {
  if (/(Invalid prop|Failed propType)/.test(warning)) {
    throw new Error(warning);
  }
  warn.apply(console, arguments);
};

Ответ 2

Небольшие улучшения в принятом ответе: console.error вместо console.warn, как указано spain-train, добавил регулярное выражение 'Failed prop type', как только работает с React 15.3.1 и делает код более строгим, дружелюбным eslint.

const error = console.error;
console.error = function(warning, ...args) {
  if (/(Invalid prop|Failed prop type)/.test(warning)) {
    throw new Error(warning);
  }
  error.apply(console, [warning, ...args]);
};