@@ -7,25 +7,24 @@ import NumberDisplay from './components/NumberDisplay'
77// to ensure that the rerendered component is being updated correctly.
88// That said, if you'd prefer to, for example, update the props of a rendered
99// 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 ( ) => {
1111 const { rerender, getByTestId} = render ( NumberDisplay , {
1212 props : { number : 1 } ,
1313 } )
1414
1515 expect ( getByTestId ( 'number-display' ) ) . toHaveTextContent ( '1' )
1616
17- rerender ( { props : { number : 3 } } )
17+ await rerender ( { number : 3 } )
1818 expect ( getByTestId ( 'number-display' ) ) . toHaveTextContent ( '3' )
1919
20- rerender ( { props : { number : 5 } } )
20+ await rerender ( { number : 5 } )
2121 expect ( getByTestId ( 'number-display' ) ) . toHaveTextContent ( '5' )
2222
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' )
2625} )
2726
28- test ( 'rerender works with composition API' , ( ) => {
27+ test ( 'rerender works with composition API' , async ( ) => {
2928 const Component = defineComponent ( {
3029 props : {
3130 foo : { type : String , default : 'foo' } ,
@@ -43,11 +42,11 @@ test('rerender works with composition API', () => {
4342
4443 const { rerender, getByTestId} = render ( Component )
4544
46- const originalNode = getByTestId ( 'node' )
47- expect ( originalNode ) . toHaveTextContent ( 'Foo is: foo. Foobar is: foo-bar' )
45+ const getContent = ( ) => getByTestId ( 'node' )
4846
49- rerender ( { props : { foo : 'qux' } } )
47+ expect ( getContent ( ) ) . toHaveTextContent ( 'Foo is: foo. Foobar is: foo-bar' )
5048
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' )
5352} )
0 commit comments