@@ -216,6 +216,57 @@ describe('request', () => {
216216 ` )
217217 } )
218218
219+ test ( 'methods.exclude' , async ( ) => {
220+ const server1 = await createHttpServer ( ( _req , res ) => {
221+ res . writeHead ( 200 , {
222+ 'Content-Type' : 'application/json' ,
223+ } )
224+ res . end ( JSON . stringify ( { result : '0x1' } ) )
225+ } )
226+ const server2 = await createHttpServer ( ( _req , res ) => {
227+ res . writeHead ( 200 , {
228+ 'Content-Type' : 'application/json' ,
229+ } )
230+ res . end ( JSON . stringify ( { result : '0x2' } ) )
231+ } )
232+
233+ const transport = fallback ( [
234+ http ( server1 . url , { methods : { exclude : [ 'eth_a' ] } } ) ,
235+ http ( server2 . url ) ,
236+ ] ) ( {
237+ chain : localhost ,
238+ } )
239+
240+ expect ( await transport . request ( { method : 'eth_a' } ) ) . toBe ( '0x2' )
241+ expect ( await transport . request ( { method : 'eth_b' } ) ) . toBe ( '0x1' )
242+ } )
243+
244+ test ( 'methods.include' , async ( ) => {
245+ const server1 = await createHttpServer ( ( _req , res ) => {
246+ res . writeHead ( 200 , {
247+ 'Content-Type' : 'application/json' ,
248+ } )
249+ res . end ( JSON . stringify ( { result : '0x1' } ) )
250+ } )
251+ const server2 = await createHttpServer ( ( _req , res ) => {
252+ res . writeHead ( 200 , {
253+ 'Content-Type' : 'application/json' ,
254+ } )
255+ res . end ( JSON . stringify ( { result : '0x2' } ) )
256+ } )
257+
258+ const transport = fallback ( [
259+ http ( server1 . url , { methods : { include : [ 'eth_a' , 'eth_b' ] } } ) ,
260+ http ( server2 . url ) ,
261+ ] ) ( {
262+ chain : localhost ,
263+ } )
264+
265+ expect ( await transport . request ( { method : 'eth_a' } ) ) . toBe ( '0x1' )
266+ expect ( await transport . request ( { method : 'eth_b' } ) ) . toBe ( '0x1' )
267+ expect ( await transport . request ( { method : 'eth_c' } ) ) . toBe ( '0x2' )
268+ } )
269+
219270 test ( 'error (rpc)' , async ( ) => {
220271 let count = 0
221272 const server1 = await createHttpServer ( ( _req , res ) => {
0 commit comments