Я пытаюсь запустить простой тест для внутренней функции (в файле, который использует jQuery), используя Rewire .
jqgrid.js file:
function setValue(str) {
$("#testValue").text(str);
}
$(document).ready(function () {
//Do something here...
}
jqgrid.test.js file:
var rewire = require('rewire');
var mainJsFile = rewire("../Scripts/JQGridReq/jqgrid.js");
var setValue = mainJsFile.__get__('setValue');
test('setValue sets div text to Hello World!', () => {
document.body.innerHTML =
'<div id="test">' +
' <span id="testValue" />' +
'</div>';
setValue("Hello World!");
expect($('#testValue').text()).toEqual('Hello World!');
});
Сбой с ошибкой:
Test suite failed to run
TypeError: $ is not a function
> 350 | $(document).ready(function () {
351 | ^
352 | //Do something here...
Однако, если я обертываю $ (document) .ready в функции, тест запускается и проходит успешно. Есть ли что-то, чего мне не хватает в плане Rewire с настройкой jQuery?