ax ios .post () работает в тестовой среде (jest), но не в экспортированном классе - PullRequest
0 голосов
/ 13 января 2020

Я создаю систему регистрации пользователей для (простого) сайта. Мы используем ax ios для запросов на публикацию, и по какой-то причине запрос не будет выполнен, если я получу к нему доступ с помощью метода stati c, а если я вставлю его непосредственно в соответствующий тест.

Это сервер. js часть. Я проверил это с почтальоном, и он отлично работает. Я надеюсь, что все в порядке. Я не включаю в эту часть все, но скажите, нужна ли вам и эта информация.

app.post('/contact', (request, response) => {
console.log("request to add contact");
let val = [
    request.body.contactName,
    request.body.phone,
    request.body.email
];

contactDao.createOne((status, data) => {
    response.status(status);
    response.json(data);
}, val);
});

Вот класс, содержащий метод, который будет подключаться к вышеуказанной конечной точке сервера. Ни одна из цепочек ax ios .post (). Then (). Catch () не выполняется.

export class RegisterService{

static registerUser(username, email, password, callback){
    //The header for the post request
    let header = {
        "Content-Type": "application/json"
    };

    The body for the post request. The password will be used further inside the post request that 
    won't run
    let contactBody = {
        "username": username,
        "phone": null,
        "email": email
    };
    //This line runs
    console.log("Creating contact at /contact");
    //None of the console.log(...)'s run inside of here
    axios.post('http://localhost:8080/contact', JSON.stringify(contactBody), {headers: header})
        .then(res => {
            console.log("Some text");
            console.log(res.status);
            console.log(res.data);
            return res.data.insertId;
        })
        .then(contactID => {
            console.log("Creating organizer with contactID" + contactID);
            callback(contactID);
        })
        .catch(error => console.log("Error: " + error));
    //This line runs
    console.log("After");
}

}

И это мой тестовый код, который всегда проходит, потому что функция обратного вызова никогда не запускается.

test('Can we add an organizer?', () => {
RegisterService.registerUser("evengu", "even.gultvedt@gmail.com", "somepass", 
    contactID => {
        expect(contactID).toBeBiggerThan(5);
    });
});

Подводя итог, я не могу понять, почему топор ios .post () не будет работать.

...