"."
обычно не соответствует разрыву строки. Большинство движков регулярных выражений позволяют вам добавить флагов S
(также называемый DOTALL
и SINGLELINE
), чтобы "."
также соответствовал символам новой строки. Если это не удается, вы можете сделать что-то вроде [\S\s]
.
Я не использовал JEST в течение некоторого времени, но я думаю, что вам нужен «завершенный» обратный вызов для асинхронного кода.
Ваш код должен быть:
test("Should decrease the stock by a default of 1", async (done) => {
try {
localProduct.reduceStock();
await localProduct.save();
done();
} catch (e) {
console.log("error in saving localProduct", e);
}
expect(localProduct.stock.amount).toEqual(4);
});
Если это так не работает, попытайтесь вернуть документ.
await localProduct.save();
должен быть
return await localProduct.save();
Вы можете указать более высокий тайм-аут внутри теста, добавив:
jest.setTimeout(50000);