В целях тестирования я храню некоторые документы в тестовой коллекции в mongodb:
beforeAll((done) => {
server = app.listen(done);
});
afterAll(async(done) => {
server.close(done);
await Topic.deleteMany({});
});
describe('GET /', ()=>{
it('should return all topics', async ()=>{
await Topic.insertMany([
{name: 'topic1'},
{name: 'topic2'},
{name: 'topic3'}
]);
const res = await request(server).get('/api/topics/');
expect(res.status).toBe(200);
expect(res.body.length).toBe(3);
});
});
Тест не пройден, когда я ожидаю, что length
из res.body
равно 3. При первом запускетесты, в большинстве случаев эта строка не дает сбоя, но позже она всегда срабатывает.
Res.body выглядит так:
[ { _id: '5d8dbe31205ef11cbcdc45bf', name: 'topic1', __v: 0 },
{ _id: '5d8dbe319f154c29e0c43ce6', name: 'topic1', __v: 0 },
{ _id: '5d8dbe31205ef11cbcdc45c0', name: 'topic2', __v: 0 },
{ _id: '5d8dbe31205ef11cbcdc45c1', name: 'topic3', __v: 0 }
]
Так почему же существует дубликатпервая тема?