Пн go Разъем не работает регулярно в Loopback. js тесты - PullRequest
0 голосов
/ 07 февраля 2020

Я пытался выяснить, почему мой код ведет себя неожиданно

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...