Я пытаюсь протестировать функцию с помощью jest, но я получаю эту ошибку:
update fields
expect(jest.fn()).toBeCalled()
Expected number of calls: >= 1
Received number of calls: 0
55 | });
56 |
> 57 | expect(updateUI).toBeCalled();
| ^
58 | expect(document.getElementById("polarity").innerHTML).toEqual('polarity');
59 | expect(document.getElementById("polarityConfidence").innerHTML).toEqual('polarity confidence');
60 | expect(document.getElementById("subjectivity").innerHTML).toEqual('subjectivity');
функция, которую я пытаюсь протестировать, такова. Это на самом деле вызывается в моей основной функции, которая называется handleSubmit. Внутри этой функции я собираю пользовательский ввод и затем отправляю его на мой сервер, где выполняется внешний вызов API, который отправляет возвращенные данные в конечную точку my / sentiment. Затем updateUI извлекает данные из / sentiment и заполняет элемент DOM данными.
const updateUI = async () =>{
const res = await fetch('/sentiment');
console.log(res);
try {
console.log(res.data)
const allData = await res.json();
console.log(allData)
document.getElementById("polarity").innerHTML = allData.polarity;
document.getElementById("polarityConfidence").innerHTML = allData.polarity_confidence;
document.getElementById("subjectivity").innerHTML = allData.polarity;
document.getElementById("subjectivityConfidence").innerHTML = allData.polarity_confidence;
return allData;
}catch(error){
console.log(error)
}
};
export { updateUI }
, и мой тест таков:
import "regenerator-runtime/runtime";
import "core-js/stable";
jest.mock('./updateUI', () => jest.fn());
test('update fields', () => {
document.body.innerHTML =
`<header>
<div class="logo">
News Article Processing
</div>
</header>
<main>
<section>
<div class="holder">
<input id="URL" type="text" name="input" value="" placeholder="URL" size="48">
<button id="generate" type = "submit"> Submit </button>
</form>
</div>
<section>
<section>
<div class="results">
<div class="box">
<strong>Results:</strong>
</div>
<div class="box">
Polarity: <div id="polarity"></div>
</div>
<div class="box">
Polarity Confidence: <div id="polarityConfidence"></div>
</div>
<div class="box">
Subjectivity: <div id="subjectivity"></div>
</div>
<div class="box">
Subjectivity Confidence: <div id="subjectivityConfidence"></div>
</div>
</div>
</section>
</main>
<footer>
<p>Michael Wycklendt Udacity</p>
</footer>`
const updateUI = require('./updateUI')
updateUI.mockImplementation(cb => {
cb({
polarity: 'polarity',
polarity_confidence: 'polarity confidence',
subjectivity: 'subjectivity',
subjectivity_confidence: 'subjectivity confidence'
});
});
Я понятия не имею, что делаю неправильно. Любые предложения относительно того, что мне здесь не хватает?
Спасибо