Je ne peux pas me moquer des fonctions moment()
ou moment().format
. J'ai des états où, currentDateMoment
et currentDateFormatted
sont définis comme ci-dessous.
currentDateMoment: moment() //2019-04-23T17:45:26.339Z currentDateFormatted: moment().format('MM-DD-YYYY').valueOf() //"04-23-2019"
Essayer de se moquer à la fois de moment()
et moment().format
dans mes tests d'instantané pour renvoyer une date particulière, mais n'a pas pu le faire. Essayé ci-dessous.
jest.mock('moment', () => () => '2018–01–30T12:34:56+00:00');
jest.mock('moment', () => ({
constructor: () => '2018–01–30T12:34:56+00:00'
}));
jest.mock('moment', () => () => ({ format: () => '01–30-2018' }));
J'obtenais toujours des erreurs parce que j'utilisais aussi le fuseau horaire. Alors, voici ce que j'ai fait pour résoudre ce problème:
let diffMins = updateThreshold + 1;
jest.mock('moment', () => {
const mMoment = {
diff: jest.fn(() => diffMins),
};
const fn = jest.fn(() => mMoment);
fn.version = '2.24';
fn.tz = jest.fn();
fn.fn = jest.fn();
return fn;
});