Как настроить интеграционные тесты с приложением mon go + koa - PullRequest
0 голосов
/ 08 апреля 2020

Я использую Mongodb & Koa для приложения. Я создал оболочку для сервера, чтобы я мог подключиться в процессе инициализации приложения:

server.js

let server = new Koa();
let router = new Router();

// yes there's no actual Mongo queries in the example, but eventually this app is going to have database functionality
MongoClient.connect(process.env.DB_URL, (err, client) => {
   router.get('/', async (ctx) => {
      ctx.body = 'Yup, servers up';
   });

   server.use(router);
   server.listen(3000);
}

module.exports = server;

Я также установил mocha, chai и chai- http и следовал документации chai-http для настройки теста:

https://www.chaijs.com/plugins/chai-http/

Вот моя локальная версия:

tests/example.js

const chai = require('chai');
const chatHttp = require('chat-http');
chai.use(chaiHttp);

describe('/', () => {
  it('hits the route', () => {
    // should send a GET request to the root route once the server is initialized.
    chai.request(server)
      .get('/');

    // will assert things here once I figure out this `.address` not found error or the race condition when I pass a simple URL
  })
})

Я также попытался экспортировать module.exports = server.listen(3000) вместо module.exports = server из-за того, что ожидаемый метод .address на сервере не найден. Но ни один из способов не работает.

Можно ли даже экспортировать приложение после его инициализации?

Я не могу запустить версию сервера для разработки, поскольку она не будет использовать выделенный тестовая версия приложения.

...