Closed as not planned
Description
Ask your Question
I have a simple test that seems to generate the right snapshot at the end of execution, but throws me a console.error
during the execution.
Here are the steps to get to the expected component state:
- Load the component
- Wait for the
useEffect
asynchronous logic to be executed so that theSegmentedControlIOS
is exposed (testID
=recordTypePicker
) - Set the
selectedSegmentIndex
to"1"
- Wait for the component to re-render and all the async logic to be executed
- Assert that the rendered component includes
newSObjectLayout
testID
The test
import * as React from 'react';
import { fireEvent, render, waitFor } from 'react-native-testing-library';
import { NewSObjectContainer } from '../NewSObject';
describe('NewSObjectContainer', () => {
const setup = () => {
const route = { params: { sobject: 'Account' } };
const navigation = { setOptions: jest.fn() };
const container = render(<NewSObjectContainer route={route} navigation={navigation} />);
return { container };
};
it('should render a NewSObjectContainer - with page layout exposed', async () => {
const { container } = setup();
await waitFor(() => expect(container.getByTestId('recordTypePicker')).toBeTruthy());
const input = container.getByTestId('recordTypePicker');
fireEvent(input, 'onChange', { nativeEvent: { selectedSegmentIndex: 1 } });
await waitFor(() => expect(container.getByTestId('newSObjectLayout')).toBeTruthy());
expect(container.toJSON()).toMatchSnapshot();
});
});
The console log
./node_modules/.bin/jest src/containers/__tests__/NewSObject.spec.tsx --u
console.error
Warning: You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);
at CustomConsole.console.error (node_modules/react-native/Libraries/YellowBox/YellowBox.js:63:9)
at printWarning (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:120:30)
at error (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:92:5)
at node_modules/react-test-renderer/cjs/react-test-renderer.development.js:14953:13
at tryCallOne (node_modules/promise/lib/core.js:37:12)
at node_modules/promise/lib/core.js:123:15
at flush (node_modules/asap/raw.js:50:29)
PASS src/containers/__tests__/NewSObject.spec.tsx
NewSObjectContainer
✓ should render a NewSObjectContainer - with page layout exposed (499ms)
› 1 snapshot written.
Snapshot Summary
› 1 snapshot written from 1 test suite.
Test Suites: 1 passed, 1 total
Tests: q passed, q total
Snapshots: 1 written, 1 passed, q total
Time: 4.865s, estimated 8s
Ran all test suites matching /src\/containers\/__tests__\/NewSObject.spec.tsx/i.