Ошибка тестирования неэкспортированной функции jQuery с использованием Jest и Rewire - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь запустить простой тест для внутренней функции (в файле, который использует 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?

...