mirror of
https://github.com/callstack/react-native-testing-library.git
synced 2026-09-18 23:09:04 +08:00
feat: add rerender as an alias for update (#149)
<!-- Please provide enough information so that others can review your pull request. --> <!-- Keep pull requests small and focused on a single change. --> ### Summary Users of `react-testing-library` use `rerender` wording instead of `update`. Let's make it easier for them by aliasing it. See: https://testing-library.com/docs/react-testing-library/api#rerender ### Test plan Added cases for JS tests and TS typings
This commit is contained in:
committed by
Kacper Wiszczuk
parent
488a2ca5cc
commit
439db6c823
@@ -98,6 +98,8 @@ A method returning an array of `ReactTestInstance`s with matching a React compon
|
||||
|
||||
### `update: (element: React.Element<any>) => void`
|
||||
|
||||
_Also available under `rerender` alias_
|
||||
|
||||
Re-render the in-memory tree with a new root element. This simulates a React update at the root. If the new element has the same type and key as the previous element, the tree will be updated; otherwise, it will re-mount a new tree. This is useful when testing for `componentDidUpdate` behavior, by passing updated props to the component.
|
||||
|
||||
[Example code](https://github.com/callstack/react-native-testing-library/blob/f96d782d26dd4815dbfd01de6ef7a647efd1f693/src/__tests__/act.test.js#L31-L37)
|
||||
|
||||
@@ -237,14 +237,15 @@ test('getAllByProp, queryAllByProps', () => {
|
||||
|
||||
test('update', () => {
|
||||
const fn = jest.fn();
|
||||
const { getByName, update } = render(<Banana onUpdate={fn} />);
|
||||
const { getByName, update, rerender } = render(<Banana onUpdate={fn} />);
|
||||
const button = getByName('Button');
|
||||
|
||||
button.props.onPress();
|
||||
|
||||
update(<Banana onUpdate={fn} />);
|
||||
rerender(<Banana onUpdate={fn} />);
|
||||
|
||||
expect(fn).toHaveBeenCalledTimes(2);
|
||||
expect(fn).toHaveBeenCalledTimes(3);
|
||||
});
|
||||
|
||||
test('unmount', () => {
|
||||
|
||||
@@ -27,6 +27,7 @@ export default function render(
|
||||
...getByAPI(instance),
|
||||
...queryByAPI(instance),
|
||||
update: updateWithAct(renderer),
|
||||
rerender: updateWithAct(renderer), // alias for `update`
|
||||
unmount: renderer.unmount,
|
||||
toJSON: renderer.toJSON,
|
||||
debug: debug(instance, renderer),
|
||||
|
||||
@@ -99,6 +99,7 @@ const debugFn = tree.debug();
|
||||
const debugFnWithMessage = tree.debug('my message');
|
||||
|
||||
tree.update(<View />);
|
||||
tree.rerender(<View />);
|
||||
tree.unmount();
|
||||
|
||||
// fireEvent API tests
|
||||
|
||||
Vendored
+1
@@ -43,6 +43,7 @@ export interface RenderOptions {
|
||||
|
||||
export interface RenderAPI extends GetByAPI, QueryByAPI {
|
||||
update(nextElement: React.ReactElement<any>): void;
|
||||
rerender(nextElement: React.ReactElement<any>): void;
|
||||
unmount(nextElement?: React.ReactElement<any>): void;
|
||||
toJSON(): ReactTestRendererJSON | null;
|
||||
debug(message?: string): void;
|
||||
|
||||
Reference in New Issue
Block a user