1
1
import { createElement } from "react" ;
2
- import { render , screen } from "@testing-library/react" ;
2
+ import { act , render , screen } from "@testing-library/react" ;
3
3
import userEvent from "@testing-library/user-event" ;
4
4
import "@testing-library/jest-dom" ;
5
5
import { ColumnSelector , ColumnSelectorProps } from "../ColumnSelector" ;
@@ -20,7 +20,9 @@ describe("Column Selector", () => {
20
20
expect ( document . body ) . toHaveFocus ( ) ;
21
21
22
22
const user = userEvent . setup ( { advanceTimers : jest . advanceTimersByTime } ) ;
23
- await user . click ( screen . getByRole ( "button" ) ) ;
23
+ await act ( async ( ) => {
24
+ await user . click ( screen . getByRole ( "button" ) ) ;
25
+ } ) ;
24
26
25
27
const element = document . querySelector ( ".column-selectors" ) ;
26
28
expect ( element ?. classList . contains ( "overflow" ) ) . toBe ( false ) ;
@@ -31,9 +33,11 @@ describe("Column Selector", () => {
31
33
expect ( document . body ) . toHaveFocus ( ) ;
32
34
33
35
const user = userEvent . setup ( { advanceTimers : jest . advanceTimersByTime } ) ;
34
- await user . click ( screen . getByRole ( "button" ) ) ;
36
+ await act ( async ( ) => {
37
+ await user . click ( screen . getByRole ( "button" ) ) ;
38
+ } ) ;
35
39
36
- jest . runOnlyPendingTimers ( ) ;
40
+ jest . advanceTimersByTime ( 100 ) ;
37
41
38
42
const items = screen . getAllByRole ( "menuitem" ) ;
39
43
expect ( items [ 0 ] ) . toHaveFocus ( ) ;
@@ -44,16 +48,20 @@ describe("Column Selector", () => {
44
48
expect ( document . body ) . toHaveFocus ( ) ;
45
49
46
50
const user = userEvent . setup ( { advanceTimers : jest . advanceTimersByTime } ) ;
47
- await user . click ( screen . getByRole ( "button" ) ) ;
51
+ await act ( async ( ) => {
52
+ await user . click ( screen . getByRole ( "button" ) ) ;
53
+ } ) ;
48
54
49
- jest . runOnlyPendingTimers ( ) ;
55
+ jest . advanceTimersByTime ( 100 ) ;
50
56
51
57
const items = screen . getAllByRole ( "menuitem" ) ;
52
58
expect ( items [ 0 ] ) . toHaveFocus ( ) ;
53
59
54
- await user . tab ( { shift : true } ) ;
60
+ await act ( async ( ) => {
61
+ await user . tab ( { shift : true } ) ;
62
+ } ) ;
55
63
56
- jest . runOnlyPendingTimers ( ) ;
64
+ jest . advanceTimersByTime ( 100 ) ;
57
65
58
66
expect ( screen . getByRole ( "button" ) ) . toHaveFocus ( ) ;
59
67
} ) ;
@@ -81,17 +89,24 @@ describe("Column Selector", () => {
81
89
expect ( document . body ) . toHaveFocus ( ) ;
82
90
83
91
const user = userEvent . setup ( { advanceTimers : jest . advanceTimersByTime } ) ;
84
- await user . click ( screen . getByRole ( "button" ) ) ;
85
-
86
- jest . runOnlyPendingTimers ( ) ;
92
+ await act ( async ( ) => {
93
+ await user . click ( screen . getByRole ( "button" ) ) ;
94
+ } ) ;
95
+ jest . advanceTimersByTime ( 100 ) ;
87
96
88
97
const items = screen . getAllByRole ( "menuitem" ) ;
89
98
expect ( items [ 0 ] ) . toHaveFocus ( ) ;
90
- await user . tab ( ) ;
91
- expect ( items [ 1 ] ) . toHaveFocus ( ) ;
92
- await user . tab ( ) ;
93
99
94
- jest . runOnlyPendingTimers ( ) ;
100
+ await act ( async ( ) => {
101
+ await user . tab ( ) ;
102
+ } ) ;
103
+ jest . advanceTimersByTime ( 100 ) ;
104
+
105
+ expect ( items [ 1 ] ) . toHaveFocus ( ) ;
106
+ await act ( async ( ) => {
107
+ await user . tab ( ) ;
108
+ } ) ;
109
+ jest . advanceTimersByTime ( 100 ) ;
95
110
96
111
expect ( screen . getByRole ( "button" ) ) . toHaveFocus ( ) ;
97
112
} ) ;
@@ -130,19 +145,26 @@ describe("Column Selector", () => {
130
145
expect ( document . body ) . toHaveFocus ( ) ;
131
146
132
147
const user = userEvent . setup ( { advanceTimers : jest . advanceTimersByTime } ) ;
133
- await user . click ( screen . getByRole ( "button" ) ) ;
134
148
135
- jest . runOnlyPendingTimers ( ) ;
149
+ await act ( async ( ) => {
150
+ await user . click ( screen . getByRole ( "button" ) ) ;
151
+ } ) ;
152
+ jest . advanceTimersByTime ( 100 ) ;
136
153
137
154
const items = screen . getAllByRole ( "menuitem" ) ;
138
155
expect ( items ) . toHaveLength ( 3 ) ;
139
156
expect ( items [ 0 ] ) . toHaveFocus ( ) ;
140
157
141
- await user . tab ( ) ;
142
- expect ( items [ 1 ] ) . toHaveFocus ( ) ;
143
- await user . keyboard ( "{Escape}" ) ;
158
+ await act ( async ( ) => {
159
+ await user . tab ( ) ;
160
+ } ) ;
161
+ jest . advanceTimersByTime ( 100 ) ;
144
162
145
- jest . runOnlyPendingTimers ( ) ;
163
+ expect ( items [ 1 ] ) . toHaveFocus ( ) ;
164
+ await act ( async ( ) => {
165
+ await user . keyboard ( "{Escape}" ) ;
166
+ } ) ;
167
+ jest . advanceTimersByTime ( 100 ) ;
146
168
147
169
expect ( screen . getByRole ( "button" ) ) . toHaveFocus ( ) ;
148
170
} ) ;
0 commit comments