@@ -3585,12 +3585,20 @@ describe('Order of get/create', () => {
35853585 let shouldError = true ;
35863586 const createCalls : BasicValue [ ] = [ ] ;
35873587 const updateCalls : BasicValue [ ] = [ ] ;
3588+ let resolveFirstCreate ! : ( ) => void ;
3589+ let resolveRetriedCreate ! : ( ) => void ;
3590+ let resolveUpdate ! : ( ) => void ;
3591+ const firstCreate = new Promise < void > ( ( resolve ) => ( resolveFirstCreate = resolve ) ) ;
3592+ const retriedCreate = new Promise < void > ( ( resolve ) => ( resolveRetriedCreate = resolve ) ) ;
3593+ const update = new Promise < void > ( ( resolve ) => ( resolveUpdate = resolve ) ) ;
35883594 const obs$ = shape . makeObservable ( {
35893595 create : async ( input : BasicValue ) => {
35903596 createCalls . push ( clone ( input ) ) ;
35913597 if ( shouldError ) {
3598+ resolveFirstCreate ( ) ;
35923599 throw new Error ( `${ shape . name } create failed` ) ;
35933600 }
3601+ resolveRetriedCreate ( ) ;
35943602 return {
35953603 ...input ,
35963604 createdAt : 2 ,
@@ -3599,6 +3607,7 @@ describe('Order of get/create', () => {
35993607 } ,
36003608 update : async ( input : BasicValue ) => {
36013609 updateCalls . push ( clone ( input ) ) ;
3610+ resolveUpdate ( ) ;
36023611 return input ;
36033612 } ,
36043613 onError : ( ) => { } ,
@@ -3614,7 +3623,7 @@ describe('Order of get/create', () => {
36143623
36153624 shape . insert ( obs$ ) ;
36163625
3617- await promiseTimeout ( 10 ) ;
3626+ await firstCreate ;
36183627
36193628 expect ( createCalls ) . toEqual ( [ { id : '1' , test : 'hi' } ] ) ;
36203629 expect ( updateCalls ) . toEqual ( [ ] ) ;
@@ -3624,7 +3633,8 @@ describe('Order of get/create', () => {
36243633
36253634 shouldError = false ;
36263635
3627- await promiseTimeout ( 125 ) ;
3636+ await Promise . all ( [ retriedCreate , update ] ) ;
3637+ await promiseTimeout ( 0 ) ;
36283638
36293639 expect ( createCalls ) . toEqual ( [
36303640 { id : '1' , test : 'hi' } ,
0 commit comments