web-dev-qa-db-fra.com

Format moqueur moment () et moment ().

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' }));
7
Zin Yackvaa

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;
});
0
Rusty Divine