Не знаком с Jest, но так как выборка асинхронна, вы не можете получить результат выборки вне условия then
.Попробуйте положить expect
внутрь onSuccess
.Пожалуйста, посмотрите на https://jestjs.io/docs/en/asynchronous.html пример обработки асинхронного тестирования.
Кроме того, выборка html не возвращает вам DOM-объект этого html-файла, но является необработанным текстовым содержимым, поэтому jQuery не будет работать.Вам необходимо проанализировать этот необработанный текст в DOM, например, с помощью DOMParser, и выполнить тестирование на DOM.
Наконец, все, что вам нужно импортировать, должно быть помещено поверх файла, поэтому переместите var $ = require('jquery')
вне тестовой функции
Пример кода (не протестирован)
import 'whatwg-fetch'
import $ from "jquery"
test('H1 in index says Users', () =>{
function onSuccess(response) {
const rawHTML = response.text();
const parser = new DOMParser();
const doc = parser.parseFromString(rawHTML, 'text/html');
const h1Text = $(doc).find('h1').text();
expect(h1Text).toEqual('Users');
done();
}
function onError(error){
console.log(error);
}
fetch("/index.html").then(onSuccess, onError);
});