Шутка. тестирование asyn c функций, которые выполняют POST и выбирают в пределах одной функции - PullRequest
1 голос
/ 02 марта 2020

Мне нужно использовать jest для проверки функции, в которой есть две функции. Первая функция в функции, которую я пытаюсь протестировать, отправляет POST к маршруту, в котором есть вызов API, а вторая функция извлекает данные, возвращенные из API, из конечной точки на сервере, который я настроил. Я очень мало знаю о шутках и о том, какие части шуток использовать для проверки этой функции. Вложить ли два теста в один тест для основной функции? Вот функции, которые мне нужно протестировать:

handleSubmit (основная функция, которую мне нужно протестировать):

document.getElementById('generate').addEventListener('click', handleSubmit);

function handleSubmit(event) {
    //event.preventDefault()

    // check what text was put into the form field
    let url = document.getElementById('URL').value
    postURL('/postURL', url)
    .then(updateUI())
    .then(checkURL)

};

postURL (первая функция, вложенная в основную функцию, которая выполняет POST)

let postURL = async(url = '', data = {})=>{
    console.log(data);
    let response = await fetch(url, {
        method: 'POST',
        credentials: 'same-origin',
        headers: {
            "Content-Type": 'application/json',
        },
        body: JSON.stringify( { data} ),
    });
    try {
        updateUI()
    }catch(error){
        console.log("error", error);
    }
}

updateUI (вторая функция, которая извлекает данные):

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)
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...