Я использую 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
на сервере не найден. Но ни один из способов не работает.
Можно ли даже экспортировать приложение после его инициализации?
Я не могу запустить версию сервера для разработки, поскольку она не будет использовать выделенный тестовая версия приложения.