Как очистить состояние сервиса перед тестом? - PullRequest
0 голосов
/ 09 июля 2019

Я пишу тесты для простого сервиса на основе мангуста:

describe('users service', () => {
    const service = app.service('users');

    it('registered the service', () => {
        assert.ok(service, 'Registered the service');
    });
});

Проблема в том, как очистить данные перед каждым тестом?

Прямо сейчас у меня есть:

// Reset service state before each test.
beforeEach((done) => {
    service.find().then((items) => {
        items.data.forEach((item) => {
            service.remove(item._id)
        });

        done();
    })
});

Это неловко. Есть ли лучший способ?

1 Ответ

0 голосов
/ 09 июля 2019

В последней версии адаптера вы также можете временно установить опцию multi, чтобы разрешить удаление всех записей и вызвать .remove(null):

// Reset service state before each test.
beforeEach(async () => {
  const multi = service.options.multi;
  service.options.multi = 'remove';

  await service.remove(null);

  service.options.multi = multi;
});

Это также будет ждать, пока все не будет удалено (чего не сделает ваш пример).

...