Я пытался выяснить, почему мой код ведет себя неожиданно
it('Debería detectar cambios en los ultimos chequeos', async () => {
await givenEmptyDatabase();
//Generación de mocks
let taskResult1 = givenTaskResultData();
let taskResult2 = givenTaskResultData();
taskResult2.taskName += '2';
taskResult2.agentResponse.Name += '2';
await sleep(2000);
//Inserción de datos
await taskRepo.create(taskResult1);
await taskRepo.create(taskResult2);
await sleep(500);
let storedTasks = await taskRepo.find({});
await sleep(500);
expect(storedTasks .length).toBe(2); //SOMETIMES FAILS???
givenEmptyDatabase()
удаляет каждый документ из всех коллекций в пн go. Вот как это выглядит:
export async function givenEmptyDatabase() {
await new HeartbeatRepository(testdb).deleteAll();
await new TaskResultRepository(testdb).deleteAll();
await new MailSuscriptionRepository(testdb).deleteAll();
await new SuscriptionConfirmationRepository(testdb).deleteAll();
}
Что странно в том, что:
иногда сохраненоTasks.length == 2, иногда == 0, иногда == 4
То же самое происходит во всех моих тестах: Простые find (), которым непосредственно предшествует простая create (), дают разные результаты. Я стараюсь очищать базу данных вручную в начале каждого теста. Любые идеи о том, почему это должно происходить?
Когда я работаю в режиме отладки и шаг за шагом пробегаю по каждой строке, все работает хорошо .____. (вот почему я добавлял эти вызовы sleep () после каждого оператора манипуляции с БД)
Редактировать: так я запускаю свои тесты из vscode:
{
"type": "node",
"request": "launch",
"name": "vscode-jest-tests",
"cwd": "${workspaceFolder}/poller",
"program": "${workspaceRoot}/poller/node_modules/jest/bin/jest.js",
"args": [
"-i",
"--runInBand"
],
"preLaunchTask": "build",
"internalConsoleOptions": "openOnSessionStart",
"outFiles": [
"${workspaceRoot}/poller/dist/**/*"
],
// "envFile": "${workspaceRoot}/poller/.env"
}
Cheers