Jest и jquery-i18следующие без использования реакции - PullRequest
0 голосов
/ 17 октября 2018

Мне действительно нужна помощь, чтобы понять, почему функция .localize () не будет работать с моим набором Jest-тестирования.В различных тестах я всегда получаю непроходные результаты теста, потому что, по-видимому, "$ (...). Localize не является функцией".

В моем файле jestSetup есть global.localize = jest.fn ();

Кажется, проблема в том, что у меня будет что-то вроде этого:

it('should update with the right animal', () => {
  document.body.innerHTML =
   `<div class='hopScotch'></div>`
  superFunctionMango('OWL')

  expect($('.hopScotch').attr('data- 
   i18n')).toBe('OWL.#')

//and it allpasses except for app.localize

})

superFunctionMango выглядит так в реальном js-файле:

function updateNewInvoiceFieldsWithCorrectDocType(bird) {
$("#newBarBird").attr("data-i18n", `${bird}.new`);
$(".newBirdTitle").attr("data-i18n", 
  `${bird}.#`);
$(".newBirdDate").attr("data-i18n", 
  `${bird}.date`);
$(".newBirdSelect").attr("data-i18n", `${bird}.name`);
$("#app").localize();

}

Это то, что $ ('# app'). Localize (), кажется, всегда что-то запутывает.Ват делать?

1 Ответ

0 голосов
/ 22 октября 2018
$.fn.extend({
 localize: jest.fn(),
 language: jest.fn(),
 i18n:{
 changeLanguage: jest.fn()
 }

});

Разобрался, все просто.Все, что вам нужно сделать, это расширить методы jQuery в setupJest.js !!:)

...