Я пытаюсь смоделировать библиотеку «момента», чтобы я мог запускать тесты моментальных снимков, не беспокоясь о «текущих» временных метках, автоматически генерируемых с помощью moment()
, чтобы исказить мои снимки.
Однако я не могу показатьсясоздать поддельную версию moment()
без потери обычной функциональности библиотеки.
Вот что я попробовал:
src/tests/__mocks__/moment.ts
-----------------------------
const moment = require.requireActual("moment");
export default (timestamp: any = 0) => {
return moment(timestamp);
};
Логика, стоящая за этим издевательством, заключается в том, что он должен просто-ride вызывает moment()
, у которого нет какой-либо временной метки, и вместо того, чтобы позволить ему генерировать текущий момент, он будет генерировать момент moment(0)
.Все остальные функциональные возможности должны быть сохранены, например: moment("2010-05-10")
должен генерировать действительный момент для May 10th 2010
, и другие связанные функции, такие как moment().startOf("month")
, также должны работать.
Однако всякий раз, когда шутка сталкивается с каким-либо видом moment()
объявление в моем коде выдает следующую ошибку в результатах тестирования терминала:
TypeError: moment is not a function
Как можно решить эту проблему?