cryptoをjestでmockする
crypto.randomUUIDを使う機会があり、どうやってmockできるかを調べたのでメモ。
spyOnでmockReturnValueすると、valueがundefinedになってしまった。別の方法を探していて、Object.defineProperty
を使えば良さそうということだったので、valueにfunctionを追加して、こちらでjest.fn().mockReturnValue()
したらちゃんとmockできた。
describe('test', () => { Object.defineProperty(window, 'crypto', { value: { randomUUID: jest.fn().mockReturnValue('foo') }, });