@@ -235,7 +235,7 @@ test("Async.Resolved renders only after the promise is resolved", async () => {
235235 expect ( queryByText ( "done" ) ) . toBeInTheDocument ( )
236236} )
237237
238- test ( "Async.Loading renders only while the promise is pending " , async ( ) => {
238+ test ( "Async.Loading renders only while the promise is loading " , async ( ) => {
239239 const promiseFn = ( ) => resolveTo ( "ok" )
240240 const { getByText, queryByText } = render (
241241 < Async promiseFn = { promiseFn } >
@@ -248,6 +248,23 @@ test("Async.Loading renders only while the promise is pending", async () => {
248248 expect ( queryByText ( "loading" ) ) . toBeNull ( )
249249} )
250250
251+ test ( "Async.Pending renders only while the deferred promise is pending" , async ( ) => {
252+ const deferFn = ( ) => resolveTo ( "ok" )
253+ const { getByText, queryByText } = render (
254+ < Async deferFn = { deferFn } >
255+ < Async . Pending > { ( { run } ) => < button onClick = { run } > pending</ button > } </ Async . Pending >
256+ < Async . Loading > loading</ Async . Loading >
257+ < Async . Resolved > done</ Async . Resolved >
258+ </ Async >
259+ )
260+ expect ( queryByText ( "pending" ) ) . toBeInTheDocument ( )
261+ fireEvent . click ( getByText ( "pending" ) )
262+ expect ( queryByText ( "pending" ) ) . toBeNull ( )
263+ expect ( queryByText ( "loading" ) ) . toBeInTheDocument ( )
264+ await waitForElement ( ( ) => getByText ( "done" ) )
265+ expect ( queryByText ( "loading" ) ) . toBeNull ( )
266+ } )
267+
251268test ( "Async.Rejected renders only after the promise is rejected" , async ( ) => {
252269 const promiseFn = ( ) => rejectTo ( "err" )
253270 const { getByText, queryByText } = render (
0 commit comments