Testing under jest, this line throws an error calling fromreact-navigation-drawer. This test executes via the mock as expected in version 1.4.0 and then it breaks in 1.5.0 and later.
TypeError: Cannot read property ' __value' of undefined
15 | beforeEach(async () => {
16 | store = mockStore({ metricsState: initialMetricsState, preferencesState: initialPreferencesState });
> 17 | container = mount(
| ^
18 | <Provider store={store}>
19 | <RootContainer />
20 | </Provider>,
at getValue (node_modules/react-native-reanimated/mock.js:26:14)
at getValue (node_modules/react-native-reanimated/mock.js:105:11)
at new cond (node_modules/react-navigation-drawer/lib/commonjs/views/Drawer.tsx:325:9)
at constructClassInstance (node_modules/react-dom/cjs/react-dom.development.js:14204:18)
at updateClassComponent (node_modules/react-dom/cjs/react-dom.development.js:18413:5)
at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:20186:16)
at HTMLUnknownElement.callCallback (node_modules/react-dom/cjs/react-dom.development.js:336:14)
at Object.invokeGuardedCallbackDev (node_modules/react-dom/cjs/react-dom.development.js:385:16)
at invokeGuardedCallback (node_modules/react-dom/cjs/react-dom.development.js:440:31)
at beginWork$$1 (node_modules/react-dom/cjs/react-dom.development.js:25780:7)
at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:24698:12)
at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:24671:22)
at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:24270:11)
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:23698:7)
at updateContainer (node_modules/react-dom/cjs/react-dom.development.js:27103:3)
at node_modules/react-dom/cjs/react-dom.development.js:27528:7
at unbatchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:24433:12)
at legacyRenderSubtreeIntoContainer (node_modules/react-dom/cjs/react-dom.development.js:27527:5)
at Object.render (node_modules/react-dom/cjs/react-dom.development.js:27608:10)
at render (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:437:26)
at fn (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:354:37)
at batchedUpdates$1 (node_modules/react-dom/cjs/react-dom.development.js:24386:12)
at Object.act (node_modules/react-dom/cjs/react-dom-test-utils.development.js:1092:14)
at act (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:354:13)
at Object.wrapAct [as render] (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:423:16)
at new render (node_modules/enzyme/src/ReactWrapper.js:115:16)
at mount (node_modules/enzyme/src/mount.js:10:10)
at mount (__tests__/rootContainer.test.tsx:17:17)
at tryCatch (node_modules/regenerator-runtime/runtime.js:45:40)
at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:271:22)
at Generator.prototype.<computed> [as next] (node_modules/regenerator-runtime/runtime.js:97:21)
at tryCatch (node_modules/regenerator-runtime/runtime.js:45:40)
at invoke (node_modules/regenerator-runtime/runtime.js:135:20)
at node_modules/regenerator-runtime/runtime.js:170:11
at new Promise (node_modules/core-js/modules/es6.promise.js:177:7)
at callInvokeWithMethodAndArg (node_modules/regenerator-runtime/runtime.js:169:16)
at AsyncIterator.enqueue (node_modules/regenerator-runtime/runtime.js:192:13)
at AsyncIterator.prototype.<computed> [as next] (node_modules/regenerator-runtime/runtime.js:97:21)
at Object.<anonymous>.exports.async (node_modules/regenerator-runtime/runtime.js:216:14)
at Object._callee (__tests__/rootContainer.test.tsx:15:14)
Hey @GioCirque,
could you provide some minimal example of a failing test?
I have the same problem here
Probably #622 will fix this issue
Agreed
@jakub-gonet I have a repo that reproduce this error:
https://github.com/lucianomlima/react-navigation-v4-examples
This is a ReactNative app with TypeScript template and react-navigation@v4 and @testing-library/react-native dependencies.
Probably #622 will fix this issue
This doesn't work on my repro repo. 馃槥
This: https://github.com/software-mansion/react-native-reanimated/blob/79f31870b5f38d62ee56a5116dc0962381f86c61/mock.js#L138
has type:
https://github.com/software-mansion/react-native-reanimated/blob/79f31870b5f38d62ee56a5116dc0962381f86c61/react-native-reanimated.d.ts#L285
but it's being mocked as NOOP a function that returns void.
https://github.com/software-mansion/react-native-reanimated/blob/79f31870b5f38d62ee56a5116dc0962381f86c61/mock.js#L14
Then the code complains __value is not there bc nothing was returned.
Not sure if best fix but see (actually probably best to change just cond to return an object)
https://github.com/lucianomlima/react-navigation-v4-examples/pull/1
PS: key lines in stacktrace:
at getValue (node_modules/react-native-reanimated/mock.js:26:14)
at getValue (node_modules/react-native-reanimated/mock.js:105:11)
at new cond (node_modules/react-navigation-drawer/lib/commonjs/views/Drawer.tsx:325:9)
@GoMino, @GioCirque, thanks for reporting.
@Thomazella, thanks for the detailed description. I think NOOP returning 1 as __value isn't right fix because we return 0 when starting or stopping the clock.
Can you guys check out if https://github.com/software-mansion/react-native-reanimated/commit/c9cabc468e8a94eb07c91cb2bcaa87dfb188d3fa commit improves the situation a bit?
Here is the patch I have found that works for me

This should be resolved on the master.