2017-02-20 29 views
0

После добавления реагировать-скользкий ползунок на мой WebPack проект, мой Chai тест стал завершатьсяС Chai Test: Добавление реакции-пятно выбрасывает ошибку - не matchMedia настоящее

C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:226 
      throw new Error('matchMedia not present, legacy browsers require a polyfill'); 
      ^

Error: matchMedia not present, legacy browsers require a polyfill 
    at Object.MediaQueryDispatch (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:226:19) 
    at C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:291:9 
    at i (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:11:20) 
    at Object.<anonymous> (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:21:2) 

Единственное решение этой проблемы, что автор рекомендуемого компонента слайдера here предназначен для шутки. Я пробовал это в своей среде, но это не сработало.

+0

Я закончил тем, что бросил это среагировать-скользкий ползунок в мусор и создавая свой собственный движок вместо этого. Ползунок с разрешающей способностью бесполезен, хотя бы потому, что в отличие от большинства пакетов npm, он сумел запутать себя с некоторой тайной зависимостью. Полностью бесполезен, если вы не собираетесь тестировать со шуткой. – 000

ответ

0

Решение должно быть основано на тестовой бегуна в целом вы должны издеваться window.matchMedia

window.matchMedia =() => ({ 
    matches : false, 
    addListener :() =>{}, 
    removeListener:() =>{}, 
}); 

или

window.matchMedia = function(){ 
    matches : false, 
    addListener : function() {}, 
    removeListener: function() {}, 
}; 

Если у вас будет что-то вроде окна не определен вы можете попытаться прикрепить его к global объект, который используется тестирующими бегунами.

Надеется, что это поможет, удачи