@@ -373,3 +373,43 @@ test("An unrelated change in props does not update the Context", async () => {
373
373
)
374
374
expect ( one ) . toBe ( two )
375
375
} )
376
+
377
+ test ( "Async.Resolved does not render after deferFn rejection" , async ( ) => {
378
+ const promiseFn = ( ) => resolveTo ( "ok" )
379
+ const deferFn = ( ) => rejectTo ( "notok" )
380
+ const { getByText, queryByText } = render (
381
+ < Async promiseFn = { promiseFn } deferFn = { deferFn } >
382
+ < Async . Rejected > fail</ Async . Rejected >
383
+ < Async . Resolved > { ( data , { run } ) => < button onClick = { run } > next</ button > } </ Async . Resolved >
384
+ </ Async >
385
+ )
386
+
387
+ expect ( queryByText ( "next" ) ) . toBeNull ( )
388
+ await waitForElement ( ( ) => getByText ( "next" ) )
389
+ expect ( queryByText ( "next" ) ) . toBeInTheDocument ( )
390
+ expect ( queryByText ( "fail" ) ) . toBeNull ( )
391
+ fireEvent . click ( getByText ( "next" ) )
392
+ await waitForElement ( ( ) => getByText ( "fail" ) )
393
+ expect ( queryByText ( "next" ) ) . toBeNull ( )
394
+ expect ( queryByText ( "fail" ) ) . toBeInTheDocument ( )
395
+ } )
396
+
397
+ test ( "Async.Resolved renders after deferFn rejection with persist" , async ( ) => {
398
+ const promiseFn = ( ) => resolveTo ( "ok" )
399
+ const deferFn = ( ) => rejectTo ( "notok" )
400
+ const { getByText, queryByText } = render (
401
+ < Async promiseFn = { promiseFn } deferFn = { deferFn } >
402
+ < Async . Rejected > fail</ Async . Rejected >
403
+ < Async . Resolved persist > { ( data , { run } ) => < button onClick = { run } > next</ button > } </ Async . Resolved >
404
+ </ Async >
405
+ )
406
+
407
+ expect ( queryByText ( "next" ) ) . toBeNull ( )
408
+ await waitForElement ( ( ) => getByText ( "next" ) )
409
+ expect ( queryByText ( "next" ) ) . toBeInTheDocument ( )
410
+ expect ( queryByText ( "fail" ) ) . toBeNull ( )
411
+ fireEvent . click ( getByText ( "next" ) )
412
+ await waitForElement ( ( ) => getByText ( "fail" ) )
413
+ expect ( queryByText ( "next" ) ) . toBeInTheDocument ( )
414
+ expect ( queryByText ( "fail" ) ) . toBeInTheDocument ( )
415
+ } )
0 commit comments