web-dev-qa-db-ja.com

jestを使用してmoment()およびmoment()。formatをモックする

moment()またはmoment().format関数をモックできません。 currentDateMomentcurrentDateFormattedが次のように設定されている状態があります。

currentDateMoment: moment() //2019-04-23T17:45:26.339Z currentDateFormatted: moment().format('MM-DD-YYYY').valueOf() //"04-23-2019"

特定の日付を返すためにスナップショットテストでmoment()moment().formatの両方をモックしようとしましたが、できませんでした。以下で試してみました。

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

モーメントタイムゾーンも使用していたため、まだエラーが発生していました。それで、これを修正するために私がしたことは次のとおりです:

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