@@ -14,6 +14,7 @@ import * as rpcUtilsMiddleware from '@/utils/middleware';
14
14
import {
15
15
ErrorRPC ,
16
16
ErrorRPCHandlerFailed ,
17
+ ErrorRPCParse ,
17
18
ErrorRPCRemote ,
18
19
ErrorRPCTimedOut ,
19
20
} from '@/errors' ;
@@ -733,8 +734,7 @@ describe('RPC', () => {
733
734
await rpcServer . destroy ( ) ;
734
735
await rpcClient . destroy ( ) ;
735
736
} ) ;
736
- /*
737
- Test('RPC client times out before server', async () => {
737
+ test ( 'RPC client times out before server' , async ( ) => {
738
738
// Generate test data (assuming fc.array generates some mock array)
739
739
const values = fc . array ( rpcTestUtils . safeJsonValueArb , { minLength : 1 } ) ;
740
740
@@ -750,7 +750,12 @@ describe('RPC', () => {
750
750
meta : Record < string , JSONValue > | undefined ,
751
751
ctx : ContextTimed ,
752
752
) : AsyncIterableIterator < JSONValue > {
753
- yield* input;
753
+ ctx . signal . throwIfAborted ( ) ;
754
+ const abortProm = utils . promise < never > ( ) ;
755
+ ctx . signal . addEventListener ( 'abort' , ( ) => {
756
+ abortProm . rejectP ( ctx . signal . reason ) ;
757
+ } ) ;
758
+ await abortProm . p ;
754
759
} ;
755
760
}
756
761
// Set up a client and server with matching timeout settings
@@ -761,7 +766,7 @@ describe('RPC', () => {
761
766
logger,
762
767
idGen,
763
768
764
- handlerTimeoutTime: 100 ,
769
+ handlerTimeoutTime : 400 ,
765
770
} ) ;
766
771
rpcServer . handleStream ( {
767
772
...serverPair ,
@@ -781,24 +786,16 @@ describe('RPC', () => {
781
786
logger,
782
787
idGen,
783
788
} ) ;
784
- const callerInterface = await rpcClient.methods.testMethod(
785
- {timer: 5}
786
- );
789
+ const callerInterface = await rpcClient . methods . testMethod ( { timer : 300 } ) ;
787
790
const writer = callerInterface . writable . getWriter ( ) ;
788
791
const reader = callerInterface . readable . getReader ( ) ;
789
- const value = JSON.stringify(5342);
790
- await utils.sleep(10);
791
792
// Expect the client to time out first
792
- await expect(writer.write({ value })).toResolve();
793
- const readResult = await reader.read();
794
- const receivedValue = readResult.value; // First 'value' is from read result, second 'value' is from the object
795
-
796
- expect(receivedValue).toStrictEqual(value);
793
+ await expect ( writer . write ( values [ 0 ] ) ) . toResolve ( ) ;
794
+ await expect ( reader . read ( ) ) . toReject ( ) ;
797
795
798
796
await rpcServer . destroy ( ) ;
799
797
await rpcClient . destroy ( ) ;
800
798
} ) ;
801
- */
802
799
test ( 'RPC client and server with infinite timeout' , async ( ) => {
803
800
// Set up a client and server with infinite timeout settings
804
801
const values = fc . array ( rpcTestUtils . safeJsonValueArb , { minLength : 3 } ) ;
0 commit comments