или через мок OrderModel, или через проверку базы (тестовой или тоже мокнутой)
А как мокнуть модель? Брать либу которая сам реквайр модифицирует?
jest умеет из коробки
А откуда функция compute?
Ну я этим имею ввиду что это не просто сохранение заказа в бд, а там какая то супер пупер сложная логика
Я в примере просто ее не указывал явно
Как предложили уже, мок бд в джест
Там можно любой реквайр замокать? Того же аксиоса, чтобы например проверить сервис работы со внешним апи
Получается, что джест умеет патчить require чтобы подменить моком
Отлично благодарю
да, любой. но вместо мока axios'а можно использовать вот эту штуку https://github.com/nock/nock
А зачем return await
чтобы в стектрейсе была указана функция
Это же javascript test?
Та не суть важно, я для примера накинул
это джава, это джава
С одной стороны да, но иначе почему в линтерах best practice не делать этого?
- если убрать эвейт, то мы не тратим лишний тик (а то и не один) на распаковку этого эвейта. - если эвейт оставить, то функция будет в стектрейсе. ну и выбирай что лучше. а авторы правил линтера могли и не учитывать оба варианта, или решить, что лучше выбрать предварительную микрооптимизацию
Так а в функции помимо возврата значения есть еще асинхронные вызовы и await'ы к ним, именно поэтому она асинхронная
если там async, то она и останется асинхронной
А я понял, то что нам приходится распаковать, а потом запаковать обратно и тратить на это тики ради попадания в стек трейс и => адекватного error лога.
речь про распаковку эвейта который в return await fn(
Ну, короче у нас отсутствует контакт
Обсуждают сегодня