HYUDORO

勉強したことや日記など

cryptoをjestでmockする

crypto.randomUUIDを使う機会があり、どうやってmockできるかを調べたのでメモ。

spyOnでmockReturnValueすると、valueがundefinedになってしまった。別の方法を探していて、Object.definePropertyを使えば良さそうということだったので、valueにfunctionを追加して、こちらでjest.fn().mockReturnValue()したらちゃんとmockできた。

stackoverflow.com

describe('test', () => {
  Object.defineProperty(window, 'crypto', {
    value: { randomUUID: jest.fn().mockReturnValue('foo') },
  });