Jest ожидает, что количество вызовов не соответствует полученному количеству вызовов - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь протестировать функцию с помощью 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'
        });


    });

Я понятия не имею, что делаю неправильно. Любые предложения относительно того, что мне здесь не хватает?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...