Использование оригинальной функции внутри насмешки вызывает бесконечный цикл - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть цепочечный метод из Dynamoose , где при тестировании я хотел бы добавить в цепочку дополнительный метод.

По сути, при тестировании я хотел бы заменить все экземпляры

Model.query(key).otherChainableMethods()

с

Model.query(key).limit(LIMIT).otherChainableMethods()

Итак, я попытался:

Model.query = jest.fn(key => Model.query(key).limit(LIMIT))

, но это явно вызывает некоторый бесконечный цикл, потому что я получаю RangeError: Maximum call stack size exceeded

Как использовать оригинальную реализацию функции внутри фиктивной реализации?

1 Ответ

0 голосов
/ 05 ноября 2019

Я нашел простое решение. Сначала я могу просто сохранить оригинальный метод в другой переменной.

const originalQuery = Profile.query
Profile.query = jest.fn(key => originalQuery(key).limit(LIMIT))
...