Как написать тест с Jest для вызова, вложенного в попытку {} catch {} - PullRequest
0 голосов
/ 05 мая 2019

Я настраиваю некоторые тесты с Jest на экспресс-сервере Node.js, но я не могу понять, как тестировать вызовы, вложенные в блоки try / catch.

Вот часть моего сервера.js:

const start = async () => {
  try {
    if (process.env.NODE_ENV) {
      await db.sync({ force: false });
    } 

    ...

    app.get("/", (request, response) => {
      response.send("Please feel free to use our api with /api");
    });

    ...

    app.listen(port, () => {
        console.log(`Server running on port ${port}`);
        return app;
    });

  } catch (err) {
    console.log(err.message);
  }
};

export default new Promise ( async () => {
  return await start();
});

Здесь я хотел бы проверить, что такое код состояния app.listen(), но я все еще не очень хорошо знаком с тестированием.

Есть какие-нибудь предложения?

Вот тест, который я написал:

const request = require('supertest');
const app = require('../server');

describe('Test the root path', ()=>{
  test("GET method returns status code 200", ()=>{
    request(app).get('/').then( response =>{
      expect(response.statusCode).toBe(200);
    });
  });
})

Я предполагаю, что app не то, что я ожидал, потому что Jest говорит мне, что app.address не является функцией, поэтому мой export default new Promise не являетсяправильное решение.

Извините, если это кажется грязным, надеюсь, вы можете помочь!

...