11import "@testing-library/jest-dom" ;
2- import { render , RenderResult } from "@testing-library/react" ;
2+ import { act , render , RenderResult } from "@testing-library/react" ;
33import userEvent from "@testing-library/user-event" ;
44import { createElement } from "react" ;
55import { AccordionGroup , AccordionGroupProps , Target } from "../AccordionGroup" ;
@@ -75,14 +75,17 @@ describe("AccordionGroup", () => {
7575 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 1 ) ;
7676 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( true ) ;
7777
78- accordionGroup . rerender (
79- < AccordionGroup
80- { ...defaultAccordionGroupProps }
81- collapsed = { false }
82- collapsible
83- toggleCollapsed = { jest . fn ( ) }
84- />
85- ) ;
78+ act ( ( ) => {
79+ accordionGroup . rerender (
80+ < AccordionGroup
81+ { ...defaultAccordionGroupProps }
82+ collapsed = { false }
83+ collapsible
84+ toggleCollapsed = { jest . fn ( ) }
85+ />
86+ ) ;
87+ } ) ;
88+
8689 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 3 ) ;
8790 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( false ) ;
8891 expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -95,9 +98,12 @@ describe("AccordionGroup", () => {
9598 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 1 ) ;
9699 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( false ) ;
97100
98- accordionGroup . rerender (
99- < AccordionGroup { ...defaultAccordionGroupProps } collapsed collapsible toggleCollapsed = { jest . fn ( ) } />
100- ) ;
101+ act ( ( ) => {
102+ accordionGroup . rerender (
103+ < AccordionGroup { ...defaultAccordionGroupProps } collapsed collapsible toggleCollapsed = { jest . fn ( ) } />
104+ ) ;
105+ } ) ;
106+
101107 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 3 ) ;
102108 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( true ) ;
103109 expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -109,9 +115,12 @@ describe("AccordionGroup", () => {
109115 } ) ;
110116 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 0 ) ;
111117
112- accordionGroup . rerender (
113- < AccordionGroup { ...defaultAccordionGroupProps } visible collapsible toggleCollapsed = { jest . fn ( ) } />
114- ) ;
118+ act ( ( ) => {
119+ accordionGroup . rerender (
120+ < AccordionGroup { ...defaultAccordionGroupProps } visible collapsible toggleCollapsed = { jest . fn ( ) } />
121+ ) ;
122+ } ) ;
123+
115124 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 1 ) ;
116125 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( true ) ;
117126 expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -124,9 +133,12 @@ describe("AccordionGroup", () => {
124133 } ) ;
125134 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 0 ) ;
126135
127- accordionGroup . rerender (
128- < AccordionGroup { ...defaultAccordionGroupProps } visible collapsible toggleCollapsed = { jest . fn ( ) } />
129- ) ;
136+ act ( ( ) => {
137+ accordionGroup . rerender (
138+ < AccordionGroup { ...defaultAccordionGroupProps } visible collapsible toggleCollapsed = { jest . fn ( ) } />
139+ ) ;
140+ } ) ;
141+
130142 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 2 ) ;
131143 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( false ) ;
132144 expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -240,13 +252,16 @@ describe("AccordionGroup", () => {
240252 const accordionGroup = renderCollapsibleAccordionGroup ( {
241253 onToggleCompletion : onToggleCompletionMock
242254 } ) ;
243- accordionGroup . rerender (
244- < AccordionGroup
245- { ...defaultAccordionGroupProps }
246- collapsed = { false }
247- onToggleCompletion = { onToggleCompletionMock }
248- />
249- ) ;
255+
256+ act ( ( ) => {
257+ accordionGroup . rerender (
258+ < AccordionGroup
259+ { ...defaultAccordionGroupProps }
260+ collapsed = { false }
261+ onToggleCompletion = { onToggleCompletionMock }
262+ />
263+ ) ;
264+ } ) ;
250265
251266 expect ( onToggleCompletionMock ) . toHaveBeenCalledTimes ( 1 ) ;
252267 expect ( onToggleCompletionMock ) . toHaveBeenCalledWith ( false ) ;
@@ -294,7 +309,10 @@ describe("AccordionGroup", () => {
294309 visible : false
295310 } ) ;
296311
297- accordionGroup . rerender ( < AccordionGroup { ...defaultAccordionGroupProps } visible collapsed = { false } /> ) ;
312+ act ( ( ) => {
313+ accordionGroup . rerender ( < AccordionGroup { ...defaultAccordionGroupProps } visible collapsed = { false } /> ) ;
314+ } ) ;
315+
298316 expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 0 ) ;
299317 expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
300318 } ) ;
@@ -344,26 +362,32 @@ describe("AccordionGroup", () => {
344362
345363 expect ( accordionGroup . queryByText ( "Widgets" ) ) . not . toBeInTheDocument ( ) ;
346364
347- accordionGroup . rerender (
348- < AccordionGroup
349- { ...defaultAccordionGroupProps }
350- collapsible
351- content = { < div > Widgets</ div > }
352- loadContent = "whenExpanded"
353- collapsed = { false }
354- />
355- ) ;
365+ act ( ( ) => {
366+ accordionGroup . rerender (
367+ < AccordionGroup
368+ { ...defaultAccordionGroupProps }
369+ collapsible
370+ content = { < div > Widgets</ div > }
371+ loadContent = "whenExpanded"
372+ collapsed = { false }
373+ />
374+ ) ;
375+ } ) ;
376+
356377 expect ( accordionGroup . queryByText ( "Widgets" ) ) . toBeInTheDocument ( ) ;
357378
358- accordionGroup . rerender (
359- < AccordionGroup
360- { ...defaultAccordionGroupProps }
361- collapsible
362- content = { < div > Widgets</ div > }
363- loadContent = "whenExpanded"
364- collapsed
365- />
366- ) ;
379+ act ( ( ) => {
380+ accordionGroup . rerender (
381+ < AccordionGroup
382+ { ...defaultAccordionGroupProps }
383+ collapsible
384+ content = { < div > Widgets</ div > }
385+ loadContent = "whenExpanded"
386+ collapsed
387+ />
388+ ) ;
389+ } ) ;
390+
367391 expect ( accordionGroup . queryByText ( "Widgets" ) ) . toBeInTheDocument ( ) ;
368392 } ) ;
369393 } ) ;
0 commit comments