LinusU / react-native-get-random-values

A small implementation of `getRandomValues` for React Native
MIT License
350 stars 48 forks source link

Error Cannot read property 'getRandomBase64' of undefined when running test file #22

Open gandarain opened 4 years ago

gandarain commented 4 years ago

I try use package uuid and react native get random values to create random uuid. Everything is fine and working. But when I try run my test file using jest, and I get an error Cannot read property 'getRandomBase64' of undefined. How to solve this error?

Thanks.

Screen Shot 2020-10-02 at 10 37 22

paulmars commented 4 years ago

i'm getting this too.

aav7fl commented 4 years ago

I was having this problem as well while using jest to test my Entrypoint file.

My Entrypoint had the following for import Expo SDK@39.0.3 to support calling UUID@8.3.1:

import 'react-native-get-random-values';

Because my Entrypoint file was trying to import the react-native-get-random-values for shallow rendering, it was throwing the Cannot read property 'getRandomBase64' of undefined error when getting tested since it wasn't being set up correctly during the test.

I ended up solving this by mocking out the function call for getRandomBase64 in my Entrypoint test file like this:

jest.mock('react-native-get-random-values', () => ({
  getRandomBase64: jest.fn(),
}));
SnaiNeR commented 4 years ago

@aav7fl thanks, mocking helped

jpaulomotta commented 4 years ago

I was having the same problem.

Mocked it a bit differently though.

jest.mock('react-native-get-random-values/getRandomBase64', (arr='bla') => (  
  Buffer.from(arr, 'base64').toString('ascii')
))