@@ -7,25 +7,24 @@ import NumberDisplay from './components/NumberDisplay'
7
7
// to ensure that the rerendered component is being updated correctly.
8
8
// That said, if you'd prefer to, for example, update the props of a rendered
9
9
// component, this function can be used to do so.
10
- test ( 'calling rerender remounts the component and updates the props' , ( ) => {
10
+ test ( 'rerender re-renders the element' , async ( ) => {
11
11
const { rerender, getByTestId} = render ( NumberDisplay , {
12
12
props : { number : 1 } ,
13
13
} )
14
14
15
15
expect ( getByTestId ( 'number-display' ) ) . toHaveTextContent ( '1' )
16
16
17
- rerender ( { props : { number : 3 } } )
17
+ await rerender ( { number : 3 } )
18
18
expect ( getByTestId ( 'number-display' ) ) . toHaveTextContent ( '3' )
19
19
20
- rerender ( { props : { number : 5 } } )
20
+ await rerender ( { number : 5 } )
21
21
expect ( getByTestId ( 'number-display' ) ) . toHaveTextContent ( '5' )
22
22
23
- // Assert that, after rerendering and updating props, the component has been remounted,
24
- // meaning we are testing a different component instance than we rendered initially.
25
- expect ( getByTestId ( 'instance-id' ) ) . toHaveTextContent ( '3' )
23
+ // Notice we don't remount a different instance
24
+ expect ( getByTestId ( 'instance-id' ) ) . toHaveTextContent ( '1' )
26
25
} )
27
26
28
- test ( 'rerender works with composition API' , ( ) => {
27
+ test ( 'rerender works with composition API' , async ( ) => {
29
28
const Component = defineComponent ( {
30
29
props : {
31
30
foo : { type : String , default : 'foo' } ,
@@ -43,11 +42,11 @@ test('rerender works with composition API', () => {
43
42
44
43
const { rerender, getByTestId} = render ( Component )
45
44
46
- const originalNode = getByTestId ( 'node' )
47
- expect ( originalNode ) . toHaveTextContent ( 'Foo is: foo. Foobar is: foo-bar' )
45
+ const getContent = ( ) => getByTestId ( 'node' )
48
46
49
- rerender ( { props : { foo : 'qux' } } )
47
+ expect ( getContent ( ) ) . toHaveTextContent ( 'Foo is: foo. Foobar is: foo-bar' )
50
48
51
- const newNode = getByTestId ( 'node' )
52
- expect ( newNode ) . toHaveTextContent ( 'Foo is: qux. Foobar is: qux-bar' )
49
+ await rerender ( { foo : 'qux' } )
50
+
51
+ expect ( getContent ( ) ) . toHaveTextContent ( 'Foo is: qux. Foobar is: qux-bar' )
53
52
} )
0 commit comments