1
1
import { useEffect } from 'react'
2
- import { render , screen , waitFor } from '@testing-library/react'
3
- import userEvent from '@testing-library/user-event'
2
+ import { fireEvent , render , screen } from '@testing-library/react'
4
3
import { expect , it } from 'vitest'
5
4
import { useAtom } from 'jotai/react'
6
5
import { atom } from 'jotai/vanilla'
7
6
8
- it ( 'only relevant render function called (#156)' , async ( ) => {
7
+ it ( 'only relevant render function called (#156)' , ( ) => {
9
8
const count1Atom = atom ( 0 )
10
9
const count2Atom = atom ( 0 )
11
10
@@ -47,24 +46,22 @@ it('only relevant render function called (#156)', async () => {
47
46
const viewCount1AfterMount = viewCount1
48
47
const viewCount2AfterMount = viewCount2
49
48
50
- await userEvent . click ( screen . getByText ( 'button1' ) )
51
-
49
+ fireEvent . click ( screen . getByText ( 'button1' ) )
52
50
expect ( screen . getByText ( 'count1: 1' ) ) . toBeInTheDocument ( )
53
51
expect ( screen . getByText ( 'count2: 0' ) ) . toBeInTheDocument ( )
54
52
55
53
expect ( viewCount1 ) . toBe ( viewCount1AfterMount + 1 )
56
54
expect ( viewCount2 ) . toBe ( viewCount2AfterMount + 0 )
57
55
58
- await userEvent . click ( screen . getByText ( 'button2' ) )
59
-
56
+ fireEvent . click ( screen . getByText ( 'button2' ) )
60
57
expect ( screen . getByText ( 'count1: 1' ) ) . toBeInTheDocument ( )
61
58
expect ( screen . getByText ( 'count2: 1' ) ) . toBeInTheDocument ( )
62
59
63
60
expect ( viewCount1 ) . toBe ( viewCount1AfterMount + 1 )
64
61
expect ( viewCount2 ) . toBe ( viewCount2AfterMount + 1 )
65
62
} )
66
63
67
- it ( 'only render once using atoms with write-only atom' , async ( ) => {
64
+ it ( 'only render once using atoms with write-only atom' , ( ) => {
68
65
const count1Atom = atom ( 0 )
69
66
const count2Atom = atom ( 0 )
70
67
const incrementAtom = atom ( null , ( _get , set , _arg ) => {
@@ -97,19 +94,19 @@ it('only render once using atoms with write-only atom', async () => {
97
94
</ > ,
98
95
)
99
96
100
- expect ( await screen . findByText ( 'count1: 0, count2: 0' ) ) . toBeInTheDocument ( )
97
+ expect ( screen . getByText ( 'count1: 0, count2: 0' ) ) . toBeInTheDocument ( )
101
98
const viewCountAfterMount = viewCount
102
99
103
- await userEvent . click ( screen . getByText ( 'button' ) )
104
- expect ( await screen . findByText ( 'count1: 1, count2: 1' ) ) . toBeInTheDocument ( )
100
+ fireEvent . click ( screen . getByText ( 'button' ) )
101
+ expect ( screen . getByText ( 'count1: 1, count2: 1' ) ) . toBeInTheDocument ( )
105
102
expect ( viewCount ) . toBe ( viewCountAfterMount + 1 )
106
103
107
- await userEvent . click ( screen . getByText ( 'button' ) )
108
- expect ( await screen . findByText ( 'count1: 2, count2: 2' ) ) . toBeInTheDocument ( )
104
+ fireEvent . click ( screen . getByText ( 'button' ) )
105
+ expect ( screen . getByText ( 'count1: 2, count2: 2' ) ) . toBeInTheDocument ( )
109
106
expect ( viewCount ) . toBe ( viewCountAfterMount + 2 )
110
107
} )
111
108
112
- it ( 'useless re-renders with static atoms (#355)' , async ( ) => {
109
+ it ( 'useless re-renders with static atoms (#355)' , ( ) => {
113
110
// check out https://codesandbox.io/s/m82r5 to see the expected re-renders
114
111
const countAtom = atom ( 0 )
115
112
const unrelatedAtom = atom ( 0 )
@@ -135,19 +132,19 @@ it('useless re-renders with static atoms (#355)', async () => {
135
132
</ > ,
136
133
)
137
134
138
- await screen . findByText ( 'count: 0' )
135
+ expect ( screen . getByText ( 'count: 0' ) ) . toBeInTheDocument ( )
139
136
const viewCountAfterMount = viewCount
140
137
141
- await userEvent . click ( screen . getByText ( 'button' ) )
142
- await screen . findByText ( 'count: 1' )
138
+ fireEvent . click ( screen . getByText ( 'button' ) )
139
+ expect ( screen . getByText ( 'count: 1' ) ) . toBeInTheDocument ( )
143
140
expect ( viewCount ) . toBe ( viewCountAfterMount + 1 )
144
141
145
- await userEvent . click ( screen . getByText ( 'button' ) )
146
- await screen . findByText ( 'count: 2' )
142
+ fireEvent . click ( screen . getByText ( 'button' ) )
143
+ expect ( screen . getByText ( 'count: 2' ) ) . toBeInTheDocument ( )
147
144
expect ( viewCount ) . toBe ( viewCountAfterMount + 2 )
148
145
} )
149
146
150
- it ( 'does not re-render if value is the same (#1158)' , async ( ) => {
147
+ it ( 'does not re-render if value is the same (#1158)' , ( ) => {
151
148
const countAtom = atom ( 0 )
152
149
153
150
let viewCount = 0
@@ -170,27 +167,27 @@ it('does not re-render if value is the same (#1158)', async () => {
170
167
</ > ,
171
168
)
172
169
173
- expect ( await screen . findByText ( 'count: 0' ) ) . toBeInTheDocument ( )
170
+ expect ( screen . getByText ( 'count: 0' ) ) . toBeInTheDocument ( )
174
171
const viewCountAfterMount = viewCount
175
172
176
- await userEvent . click ( screen . getByText ( 'noop' ) )
177
- expect ( await screen . findByText ( 'count: 0' ) ) . toBeInTheDocument ( )
173
+ fireEvent . click ( screen . getByText ( 'noop' ) )
174
+ expect ( screen . getByText ( 'count: 0' ) ) . toBeInTheDocument ( )
178
175
expect ( viewCount ) . toBe ( viewCountAfterMount + 0 )
179
176
180
- await userEvent . click ( screen . getByText ( 'inc' ) )
181
- expect ( await screen . findByText ( 'count: 1' ) ) . toBeInTheDocument ( )
177
+ fireEvent . click ( screen . getByText ( 'inc' ) )
178
+ expect ( screen . getByText ( 'count: 1' ) ) . toBeInTheDocument ( )
182
179
expect ( viewCount ) . toBe ( viewCountAfterMount + 1 )
183
180
184
- await userEvent . click ( screen . getByText ( 'noop' ) )
185
- expect ( await screen . findByText ( 'count: 1' ) ) . toBeInTheDocument ( )
181
+ fireEvent . click ( screen . getByText ( 'noop' ) )
182
+ expect ( screen . getByText ( 'count: 1' ) ) . toBeInTheDocument ( )
186
183
expect ( viewCount ) . toBe ( viewCountAfterMount + 1 )
187
184
188
- await userEvent . click ( screen . getByText ( 'inc' ) )
189
- expect ( await screen . findByText ( 'count: 2' ) ) . toBeInTheDocument ( )
185
+ fireEvent . click ( screen . getByText ( 'inc' ) )
186
+ expect ( screen . getByText ( 'count: 2' ) ) . toBeInTheDocument ( )
190
187
expect ( viewCount ) . toBe ( viewCountAfterMount + 2 )
191
188
} )
192
189
193
- it ( 'no extra rerenders after commit with derived atoms (#1213)' , async ( ) => {
190
+ it ( 'no extra rerenders after commit with derived atoms (#1213)' , ( ) => {
194
191
const baseAtom = atom ( { count1 : 0 , count2 : 0 } )
195
192
const count1Atom = atom ( ( get ) => get ( baseAtom ) . count1 )
196
193
const count2Atom = atom ( ( get ) => get ( baseAtom ) . count2 )
@@ -243,30 +240,27 @@ it('no extra rerenders after commit with derived atoms (#1213)', async () => {
243
240
</ > ,
244
241
)
245
242
246
- await waitFor ( ( ) => {
247
- expect ( screen . getByText ( 'count1: 0' ) ) . toBeInTheDocument ( )
248
- expect ( screen . getByText ( 'count2: 0' ) ) . toBeInTheDocument ( )
249
- } )
243
+ expect ( screen . getByText ( 'count1: 0' ) ) . toBeInTheDocument ( )
244
+ expect ( screen . getByText ( 'count2: 0' ) ) . toBeInTheDocument ( )
245
+
250
246
expect ( viewCount1 > 0 ) . toBeTruthy ( )
251
247
expect ( viewCount2 > 0 ) . toBeTruthy ( )
252
248
253
- await userEvent . click ( screen . getByText ( 'inc1' ) )
254
-
249
+ fireEvent . click ( screen . getByText ( 'inc1' ) )
255
250
expect ( screen . getByText ( 'count1: 1' ) ) . toBeInTheDocument ( )
256
251
expect ( screen . getByText ( 'count2: 0' ) ) . toBeInTheDocument ( )
257
252
258
253
expect ( viewCount1 ) . toBe ( viewCount1AfterCommit )
259
254
260
- await userEvent . click ( screen . getByText ( 'inc2' ) )
261
-
255
+ fireEvent . click ( screen . getByText ( 'inc2' ) )
262
256
expect ( screen . getByText ( 'count1: 1' ) ) . toBeInTheDocument ( )
263
257
expect ( screen . getByText ( 'count2: 1' ) ) . toBeInTheDocument ( )
264
258
265
259
expect ( viewCount2 ) . toBe ( viewCount2AfterCommit )
266
260
267
- await userEvent . click ( screen . getByText ( 'inc1' ) )
268
-
261
+ fireEvent . click ( screen . getByText ( 'inc1' ) )
269
262
expect ( screen . getByText ( 'count1: 2' ) ) . toBeInTheDocument ( )
270
263
expect ( screen . getByText ( 'count2: 1' ) ) . toBeInTheDocument ( )
264
+
271
265
expect ( viewCount1 ) . toBe ( viewCount1AfterCommit )
272
266
} )
0 commit comments