22
33import "@testing-library/jest-dom/extend-expect"
44import React from "react"
5- import { render , fireEvent , cleanup , waitForElement } from "@testing-library/react"
5+ import { render , fireEvent , cleanup } from "@testing-library/react"
66import Async , { createInstance , globalScope } from "./index"
77import {
88 resolveIn ,
@@ -59,7 +59,7 @@ describe("Async.Fulfilled", () => {
5959 test ( "renders only after the promise is resolved" , async ( ) => {
6060 const promiseFn = ( ) => resolveTo ( "ok" )
6161 const deferFn = ( ) => rejectTo ( "fail" )
62- const { getByText, queryByText } = render (
62+ const { getByText, findByText , queryByText } = render (
6363 < Async promiseFn = { promiseFn } deferFn = { deferFn } >
6464 < Async . Fulfilled >
6565 { ( data , { run } ) => < button onClick = { run } > { data } </ button > }
@@ -68,19 +68,19 @@ describe("Async.Fulfilled", () => {
6868 </ Async >
6969 )
7070 expect ( queryByText ( "ok" ) ) . toBeNull ( )
71- await waitForElement ( ( ) => getByText ( "ok" ) )
71+ await findByText ( "ok" )
7272 expect ( queryByText ( "ok" ) ) . toBeInTheDocument ( )
7373 expect ( queryByText ( "fail" ) ) . toBeNull ( )
7474 fireEvent . click ( getByText ( "ok" ) )
75- await waitForElement ( ( ) => getByText ( "fail" ) )
75+ await findByText ( "fail" )
7676 expect ( queryByText ( "ok" ) ) . toBeNull ( )
7777 expect ( queryByText ( "fail" ) ) . toBeInTheDocument ( )
7878 } )
7979
8080 test ( "with persist renders old data on error" , async ( ) => {
8181 const promiseFn = ( ) => resolveTo ( "ok" )
8282 const deferFn = ( ) => rejectTo ( "fail" )
83- const { getByText, queryByText } = render (
83+ const { getByText, findByText , queryByText } = render (
8484 < Async promiseFn = { promiseFn } deferFn = { deferFn } >
8585 < Async . Fulfilled persist >
8686 { ( data , { run } ) => < button onClick = { run } > { data } </ button > }
@@ -89,19 +89,19 @@ describe("Async.Fulfilled", () => {
8989 </ Async >
9090 )
9191 expect ( queryByText ( "ok" ) ) . toBeNull ( )
92- await waitForElement ( ( ) => getByText ( "ok" ) )
92+ await findByText ( "ok" )
9393 expect ( queryByText ( "ok" ) ) . toBeInTheDocument ( )
9494 expect ( queryByText ( "fail" ) ) . toBeNull ( )
9595 fireEvent . click ( getByText ( "ok" ) )
96- await waitForElement ( ( ) => getByText ( "fail" ) )
96+ await findByText ( "fail" )
9797 expect ( queryByText ( "ok" ) ) . toBeInTheDocument ( )
9898 expect ( queryByText ( "fail" ) ) . toBeInTheDocument ( )
9999 } )
100100
101101 test ( "Async.Fulfilled works also with nested Async" , async ( ) => {
102102 const outer = ( ) => resolveIn ( 0 ) ( "outer" )
103103 const inner = ( ) => resolveIn ( 100 ) ( "inner" )
104- const { getByText , queryByText } = render (
104+ const { findByText , queryByText } = render (
105105 < Async promiseFn = { outer } >
106106 < Async . Fulfilled >
107107 { outer => (
@@ -114,32 +114,32 @@ describe("Async.Fulfilled", () => {
114114 </ Async >
115115 )
116116 expect ( queryByText ( "outer pending" ) ) . toBeNull ( )
117- await waitForElement ( ( ) => getByText ( "outer pending" ) )
117+ await findByText ( "outer pending" )
118118 expect ( queryByText ( "outer inner" ) ) . toBeNull ( )
119- await waitForElement ( ( ) => getByText ( "outer inner" ) )
119+ await findByText ( "outer inner" )
120120 expect ( queryByText ( "outer inner" ) ) . toBeInTheDocument ( )
121121 } )
122122} )
123123
124124describe ( "Async.Pending" , ( ) => {
125125 test ( "renders only while the promise is pending" , async ( ) => {
126126 const promiseFn = ( ) => resolveTo ( "ok" )
127- const { getByText , queryByText } = render (
127+ const { findByText , queryByText } = render (
128128 < Async promiseFn = { promiseFn } >
129129 < Async . Pending > pending</ Async . Pending >
130130 < Async . Fulfilled > done</ Async . Fulfilled >
131131 </ Async >
132132 )
133133 expect ( queryByText ( "pending" ) ) . toBeInTheDocument ( )
134- await waitForElement ( ( ) => getByText ( "done" ) )
134+ await findByText ( "done" )
135135 expect ( queryByText ( "pending" ) ) . toBeNull ( )
136136 } )
137137} )
138138
139139describe ( "Async.Initial" , ( ) => {
140140 test ( "renders only while the deferred promise has not started yet" , async ( ) => {
141141 const deferFn = ( ) => resolveTo ( "ok" )
142- const { getByText, queryByText } = render (
142+ const { getByText, findByText , queryByText } = render (
143143 < Async deferFn = { deferFn } >
144144 < Async . Initial > { ( { run } ) => < button onClick = { run } > initial</ button > } </ Async . Initial >
145145 < Async . Pending > pending</ Async . Pending >
@@ -150,53 +150,53 @@ describe("Async.Initial", () => {
150150 fireEvent . click ( getByText ( "initial" ) )
151151 expect ( queryByText ( "initial" ) ) . toBeNull ( )
152152 expect ( queryByText ( "pending" ) ) . toBeInTheDocument ( )
153- await waitForElement ( ( ) => getByText ( "done" ) )
153+ await findByText ( "done" )
154154 expect ( queryByText ( "pending" ) ) . toBeNull ( )
155155 } )
156156} )
157157
158158describe ( "Async.Rejected" , ( ) => {
159159 test ( "renders only after the promise is rejected" , async ( ) => {
160160 const promiseFn = ( ) => rejectTo ( "err" )
161- const { getByText , queryByText } = render (
161+ const { findByText , queryByText } = render (
162162 < Async promiseFn = { promiseFn } >
163163 < Async . Rejected > { error => error . message } </ Async . Rejected >
164164 </ Async >
165165 )
166166 expect ( queryByText ( "err" ) ) . toBeNull ( )
167- await waitForElement ( ( ) => getByText ( "err" ) )
167+ await findByText ( "err" )
168168 expect ( queryByText ( "err" ) ) . toBeInTheDocument ( )
169169 } )
170170} )
171171
172172describe ( "Async.Settled" , ( ) => {
173173 test ( "renders after the promise is fulfilled" , async ( ) => {
174174 const promiseFn = ( ) => resolveTo ( "value" )
175- const { getByText , queryByText } = render (
175+ const { findByText , queryByText } = render (
176176 < Async promiseFn = { promiseFn } >
177177 < Async . Settled > { ( { data } ) => data } </ Async . Settled >
178178 </ Async >
179179 )
180180 expect ( queryByText ( "value" ) ) . toBeNull ( )
181- await waitForElement ( ( ) => getByText ( "value" ) )
181+ await findByText ( "value" )
182182 expect ( queryByText ( "value" ) ) . toBeInTheDocument ( )
183183 } )
184184
185185 test ( "renders after the promise is rejected" , async ( ) => {
186186 const promiseFn = ( ) => rejectTo ( "err" )
187- const { getByText , queryByText } = render (
187+ const { findByText , queryByText } = render (
188188 < Async promiseFn = { promiseFn } >
189189 < Async . Settled > { ( { error } ) => error . message } </ Async . Settled >
190190 </ Async >
191191 )
192192 expect ( queryByText ( "err" ) ) . toBeNull ( )
193- await waitForElement ( ( ) => getByText ( "err" ) )
193+ await findByText ( "err" )
194194 expect ( queryByText ( "err" ) ) . toBeInTheDocument ( )
195195 } )
196196
197197 test ( "renders while loading new data and persist=true" , async ( ) => {
198198 const promiseFn = ( ) => resolveTo ( "value" )
199- const { getByText, queryByText } = render (
199+ const { getByText, findByText , queryByText } = render (
200200 < Async initialValue = "init" promiseFn = { promiseFn } >
201201 < Async . Pending >
202202 < Async . Settled persist > loading</ Async . Settled >
@@ -206,8 +206,7 @@ describe("Async.Settled", () => {
206206 )
207207 expect ( queryByText ( "loading" ) ) . toBeNull ( )
208208 fireEvent . click ( getByText ( "reload" ) )
209- await waitForElement ( ( ) => getByText ( "loading" ) )
210- expect ( queryByText ( "loading" ) ) . toBeInTheDocument ( )
209+ await findByText ( "loading" )
211210 } )
212211} )
213212
@@ -216,17 +215,17 @@ describe("createInstance", () => {
216215 const promiseFn = ( ) => resolveTo ( "done" )
217216 const onResolve = jest . fn ( )
218217 const CustomAsync = createInstance ( { promiseFn, onResolve } )
219- const { getByText } = render ( < CustomAsync > { ( { data } ) => data || null } </ CustomAsync > )
220- await waitForElement ( ( ) => getByText ( "done" ) )
218+ const { findByText } = render ( < CustomAsync > { ( { data } ) => data || null } </ CustomAsync > )
219+ await findByText ( "done" )
221220 expect ( onResolve ) . toHaveBeenCalledWith ( "done" )
222221 } )
223222
224223 test ( "accepts watchFn from defaultProps and passes the defaultProps along" , async ( ) => {
225224 const promiseFn = ( ) => resolveTo ( "done" )
226225 const watchFn = jest . fn ( )
227226 const CustomAsync = createInstance ( { promiseFn, watchFn } )
228- const { getByText } = render ( < CustomAsync > { ( { data } ) => data || null } </ CustomAsync > )
229- await waitForElement ( ( ) => getByText ( "done" ) )
227+ const { findByText } = render ( < CustomAsync > { ( { data } ) => data || null } </ CustomAsync > )
228+ await findByText ( "done" )
230229 expect ( watchFn ) . toHaveBeenCalledWith (
231230 expect . objectContaining ( { promiseFn, watchFn } ) ,
232231 expect . objectContaining ( { promiseFn, watchFn } )
@@ -236,14 +235,14 @@ describe("createInstance", () => {
236235 test ( "custom instances also have helper components" , async ( ) => {
237236 const promiseFn = ( ) => resolveTo ( "done" )
238237 const CustomAsync = createInstance ( { promiseFn } )
239- const { getByText } = render (
238+ const { findByText } = render (
240239 < CustomAsync >
241240 < CustomAsync . Pending > pending</ CustomAsync . Pending >
242241 < CustomAsync . Fulfilled > resolved</ CustomAsync . Fulfilled >
243242 </ CustomAsync >
244243 )
245- await waitForElement ( ( ) => getByText ( "pending" ) )
246- await waitForElement ( ( ) => getByText ( "resolved" ) )
244+ await findByText ( "pending" )
245+ await findByText ( "resolved" )
247246 } )
248247
249248 test ( "custom instance also passes defaultProps to deferFn" , async ( ) => {
0 commit comments