Я пишу угловое приложение, которое использует библиотеку Mozilla PDFJS. К сожалению, при выполнении модульных тестов приложения кажется, что PhantomJS не может найти части PDFJS-lib.
Вот сообщение об ошибке:
PhantomJS 1.9.8 (Linux 0.0.0) ERROR
TypeError: 'undefined' is not a function (near '...}.bind(this), REJECTION_TI...')
at /home/[...]/bower_components/pdfjs-dist/build/pdf.js:1222
Мне нужно использовать PhantomJS из-за моей инфраструктуры CI.
Ваша проблема, похоже, исходит от функции bind.
Если я правильно помню, PhantomJS <2.0 не поддерживает связывание изначально, поэтому сообщение undefined is not a function. Вы можете использовать polyfill для решения этой проблемы, см.
Проблема с GitHub: https://github.com/ariya/phantomjs/issues/10522
Polyfill на NPM: https://www.npmjs.com/package/phantomjs-polyfill
Если вы не хотите использовать NPM, в MDN есть также полиполк: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill
Также кажется, что PhantomJS 2. * теперь обрабатывает его правильно, но я не пробовал.