It looks like react-native 0.45 broke some test related things.
First, snapshot tests are broken
Code:
import React from 'react';
import 'react-native';
import renderer from 'react-test-renderer';
import App from '../main';
test('renders without crashing', () => {
const rendered = renderer.create(<App />).toJSON();
expect(rendered).toMatchSnapshot();
});
Results in:
FAIL __tests__/main.test.js
● Test suite failed to run
Cannot find module 'react/lib/ReactComponentTreeHook' from 'ReactDebugTool.js'
at Resolver.resolveModule (node_modules/jest-cli/node_modules/jest-resolve/build/index.js:179:17)
at Object.<anonymous> (node_modules/react-test-renderer/lib/ReactDebugTool.js:16:30)
Second, window
object no longer exists in test. I see that in node_modules/jest-expo/setup.js
, a recent update added this:
// window isn't defined as of react-native 0.45+ it seems
if (typeof window !== 'object') {
global.window = global;
global.window.navigator = global.window.navigator || {};
}
However, this is not sufficient for apps that depend on other utilities in the window
object such as window.WebSocket
.