Тест Mocha в порядке, несмотря на то, что обработчик URL не реализован - PullRequest
0 голосов
/ 18 октября 2018

Я создал функцию Firebase и хочу проверить ее локально, используя Эмулятор облачной функции Google и Mocha.

Поэтому я создал тест в Mocha для проверки функции записи обновления API REST с помощьюМетод PUT.

Тест проходит следующим образом

it("should succesfully update data",()=>{
    chai.request(api)
        .put(`/clients/${someId}`)
        .set('Authorization', sometoken)
        .send(somenewdata)
        .end((error,response)=>{
            expect(response.status, "should be 200").to.equal(200);
})

Когда я запускаю тест.на самом деле все в порядке.

Проблема в том, что я не реализовал обработчик для запроса метода PUT к URL-адресу "clients /: id".Поэтому очевидно, что результатом должен быть тайм-аут.Я также пытаюсь запустить эмулятор и отправляю запрос PUT, используя POSTMAN, и я получаю ожидаемый результат - тайм-аут.

Другие детали:

"@ types / mocha": "^ 5.2.5 "

У кого-нибудь есть идеи по этому поводу?

1 Ответ

0 голосов
/ 19 октября 2018

Это потому, что chai.request является асинхронной функцией, поэтому должен сообщить Mocha, когда тест завершен.Обходной путь - мы можем использовать done.

it("should succesfully update data",(done) => { // specify done
    chai.request(api)
        .put(`/clients/${someId}`)
        .set('Authorization', sometoken)
        .send(somenewdata)
        .end((error,response)=>{
           expect(response.status, "should be 200").to.equal(200);
           done(); // add done
        })
})

Ссылка: https://mochajs.org/#asynchronous-code

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