1
1
import "@testing-library/jest-dom" ;
2
- import { render , RenderResult } from "@testing-library/react" ;
2
+ import { act , render , RenderResult } from "@testing-library/react" ;
3
3
import userEvent from "@testing-library/user-event" ;
4
4
import { createElement } from "react" ;
5
5
import { AccordionGroup , AccordionGroupProps , Target } from "../AccordionGroup" ;
@@ -75,14 +75,17 @@ describe("AccordionGroup", () => {
75
75
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 1 ) ;
76
76
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( true ) ;
77
77
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
+
86
89
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 3 ) ;
87
90
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( false ) ;
88
91
expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -95,9 +98,12 @@ describe("AccordionGroup", () => {
95
98
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 1 ) ;
96
99
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( false ) ;
97
100
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
+
101
107
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 3 ) ;
102
108
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( true ) ;
103
109
expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -109,9 +115,12 @@ describe("AccordionGroup", () => {
109
115
} ) ;
110
116
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 0 ) ;
111
117
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
+
115
124
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 1 ) ;
116
125
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( true ) ;
117
126
expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -124,9 +133,12 @@ describe("AccordionGroup", () => {
124
133
} ) ;
125
134
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 0 ) ;
126
135
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
+
130
142
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 2 ) ;
131
143
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledWith ( false ) ;
132
144
expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
@@ -240,13 +252,16 @@ describe("AccordionGroup", () => {
240
252
const accordionGroup = renderCollapsibleAccordionGroup ( {
241
253
onToggleCompletion : onToggleCompletionMock
242
254
} ) ;
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
+ } ) ;
250
265
251
266
expect ( onToggleCompletionMock ) . toHaveBeenCalledTimes ( 1 ) ;
252
267
expect ( onToggleCompletionMock ) . toHaveBeenCalledWith ( false ) ;
@@ -294,7 +309,10 @@ describe("AccordionGroup", () => {
294
309
visible : false
295
310
} ) ;
296
311
297
- accordionGroup . rerender ( < AccordionGroup { ...defaultAccordionGroupProps } visible collapsed = { false } /> ) ;
312
+ act ( ( ) => {
313
+ accordionGroup . rerender ( < AccordionGroup { ...defaultAccordionGroupProps } visible collapsed = { false } /> ) ;
314
+ } ) ;
315
+
298
316
expect ( defaultAccordionGroupProps . generateHeaderIcon ) . toHaveBeenCalledTimes ( 0 ) ;
299
317
expect ( accordionGroup . asFragment ( ) ) . toMatchSnapshot ( ) ;
300
318
} ) ;
@@ -344,26 +362,32 @@ describe("AccordionGroup", () => {
344
362
345
363
expect ( accordionGroup . queryByText ( "Widgets" ) ) . not . toBeInTheDocument ( ) ;
346
364
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
+
356
377
expect ( accordionGroup . queryByText ( "Widgets" ) ) . toBeInTheDocument ( ) ;
357
378
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
+
367
391
expect ( accordionGroup . queryByText ( "Widgets" ) ) . toBeInTheDocument ( ) ;
368
392
} ) ;
369
393
} ) ;
0 commit comments