@@ -167,6 +167,9 @@ func TestSubscribeEvents(t *testing.T) {
167167 blockNumber , err := provider .BlockNumber (context .Background ())
168168 require .NoError (t , err )
169169
170+ // TODO for all the cases: add logic to marshal get request type and compare with the raw request sent to the RPC server.
171+ // Maybe a websocket spy could help here.
172+
170173 t .Run ("with empty args" , func (t * testing.T ) {
171174 t .Parallel ()
172175
@@ -180,7 +183,9 @@ func TestSubscribeEvents(t *testing.T) {
180183 require .NoError (t , err )
181184 require .NotNil (t , sub )
182185
186+ // outside the loop, to avoid it being resetted
183187 timeout := time .After (10 * time .Second )
188+
184189 for {
185190 select {
186191 case resp := <- events :
@@ -210,33 +215,16 @@ func TestSubscribeEvents(t *testing.T) {
210215 require .NoError (t , err )
211216 require .NotNil (t , sub )
212217
213- uniqueAddresses := make (map [string ]bool )
214- uniqueKeys := make (map [string ]bool )
215-
218+ // outside the loop, to avoid it being resetted
216219 timeout := time .After (10 * time .Second )
217220
218221 for {
219222 select {
220223 case resp := <- events :
221224 require .IsType (t , & EmittedEventWithFinalityStatus {}, resp )
222225 require .Less (t , resp .BlockNumber , blockNumber )
223- // Subscription with only blockID should return events from all addresses and keys from the specified block onwards.
224- // As none filters are applied, the events should be from all addresses and keys.
225-
226- uniqueAddresses [resp .FromAddress .String ()] = true
227- uniqueKeys [resp .Keys [0 ].String ()] = true
228226
229- if tests .TEST_ENV == tests .IntegrationEnv {
230- // in integration network, there less unique addresses and keys
231- if len (uniqueAddresses ) >= 2 && len (uniqueKeys ) >= 2 {
232- return
233- }
234- } else {
235- // check if there are at least 3 different addresses and keys in the received events
236- if len (uniqueAddresses ) >= 3 && len (uniqueKeys ) >= 3 {
237- return
238- }
239- }
227+ return
240228 case err := <- sub .Err ():
241229 require .NoError (t , err )
242230 case <- timeout :
@@ -249,11 +237,6 @@ func TestSubscribeEvents(t *testing.T) {
249237 t .Parallel ()
250238
251239 wsProvider := testConfig .WsProvider
252- provider := testConfig .Provider
253- rawBlock , err := provider .BlockWithTxHashes (context .Background (), WithBlockTag (BlockTagLatest ))
254- require .NoError (t , err )
255- expectedBlock , ok := rawBlock .(* BlockTxHashes )
256- require .True (t , ok )
257240
258241 events := make (chan * EmittedEventWithFinalityStatus )
259242 sub , err := wsProvider .SubscribeEvents (context .Background (), events , & EventSubscriptionInput {
@@ -265,19 +248,13 @@ func TestSubscribeEvents(t *testing.T) {
265248 require .NoError (t , err )
266249 require .NotNil (t , sub )
267250
251+ // outside the loop, to avoid it being resetted
268252 timeout := time .After (10 * time .Second )
269253
270254 for {
271255 select {
272256 case resp := <- events :
273257 require .IsType (t , & EmittedEventWithFinalityStatus {}, resp )
274- if len (expectedBlock .Transactions ) > 0 {
275- // since we are subscribing to the latest block, the event block number should be the same as the latest block number,
276- // but if the latest block is empty, the subscription will return events from later blocks.
277- // Also, we can have race condition here, in case the latest block is updated between the `BlockWithTxHashes`
278- // request and the subscription.
279- require .Equal (t , expectedBlock .Number , resp .BlockNumber )
280- }
281258
282259 return
283260 case err := <- sub .Err ():
@@ -306,31 +283,24 @@ func TestSubscribeEvents(t *testing.T) {
306283 require .NoError (t , err )
307284 require .NotNil (t , sub )
308285
309- var blockNum uint64
310-
286+ // outside the loop, to avoid it being resetted
311287 timeout := time .After (10 * time .Second )
312288
313289 for {
314290 select {
315291 case resp := <- events :
316292 require .IsType (t , & EmittedEventWithFinalityStatus {}, resp )
317-
318- if blockNum == 0 {
319- // first event
320- blockNum = resp .BlockNumber
321- } else if resp .BlockNumber > blockNum {
322- // that means we received events from the next block, and no PRE_CONFIRMED was received. Success!
323- return
324- }
325-
326293 assert .Equal (t , TxnFinalityStatusAcceptedOnL2 , resp .FinalityStatus )
294+
295+ return
327296 case err := <- sub .Err ():
328297 require .NoError (t , err )
329298 case <- timeout :
330299 t .Fatal ("timeout waiting for events" )
331300 }
332301 }
333302 })
303+
334304 t .Run ("with finality status PRE_CONFIRMED" , func (t * testing.T ) {
335305 t .Parallel ()
336306
@@ -344,11 +314,12 @@ func TestSubscribeEvents(t *testing.T) {
344314 require .NoError (t , err )
345315 require .NotNil (t , sub )
346316
317+ // outside the loop, to avoid it being resetted
318+ timeout := time .After (10 * time .Second )
319+
347320 var preConfirmedEventFound bool
348321 var acceptedOnL2EventFound bool
349322
350- timeout := time .After (10 * time .Second )
351-
352323 for {
353324 select {
354325 case resp := <- events :
@@ -392,7 +363,8 @@ func TestSubscribeEvents(t *testing.T) {
392363 require .NoError (t , err )
393364 require .NotNil (t , sub )
394365
395- timeout := time .After (20 * time .Second )
366+ // outside the loop, to avoid it being resetted
367+ timeout := time .After (10 * time .Second )
396368
397369 for {
398370 select {
@@ -402,14 +374,11 @@ func TestSubscribeEvents(t *testing.T) {
402374
403375 assert .Equal (t , testSet .fromAddressExample , resp .FromAddress )
404376
405- if resp .BlockNumber >= blockNumber - 100 {
406- // we searched more than 900 blocks back, it's fine
407- return
408- }
377+ return
409378 case err := <- sub .Err ():
410379 require .NoError (t , err )
411380 case <- timeout :
412- t .Fatal ("timeout waiting for events" )
381+ t .Skip ("timeout reached, no events received " )
413382 }
414383 }
415384 })
@@ -430,8 +399,9 @@ func TestSubscribeEvents(t *testing.T) {
430399 require .NoError (t , err )
431400 require .NotNil (t , sub )
432401
433- uniqueAddresses := make ( map [ string ] bool )
402+ // outside the loop, to avoid it being resetted
434403 timeout := time .After (20 * time .Second )
404+
435405 for {
436406 select {
437407 case resp := <- events :
@@ -441,21 +411,11 @@ func TestSubscribeEvents(t *testing.T) {
441411 // Subscription with keys should only return events with the specified keys.
442412 require .Equal (t , testSet .keyExample , resp .Keys [0 ])
443413
444- uniqueAddresses [resp .FromAddress .String ()] = true
445-
446- // check if there are at least 2 different addresses in the received events
447- if len (uniqueAddresses ) >= 2 {
448- return
449- }
450-
451- if tests .TEST_ENV == tests .IntegrationEnv {
452- // integration network is not very used by external users, so let's skip the keys verification
453- return
454- }
414+ return
455415 case err := <- sub .Err ():
456416 require .NoError (t , err )
457417 case <- timeout :
458- t .Fatal ("timeout waiting for events" )
418+ t .Skip ("timeout reached, no events received " )
459419 }
460420 }
461421 })
@@ -478,7 +438,8 @@ func TestSubscribeEvents(t *testing.T) {
478438 require .NoError (t , err )
479439 require .NotNil (t , sub )
480440
481- timeout := time .After (10 * time .Second )
441+ // outside the loop, to avoid it being resetted
442+ timeout := time .After (20 * time .Second )
482443
483444 for {
484445 select {
@@ -494,7 +455,7 @@ func TestSubscribeEvents(t *testing.T) {
494455 case err := <- sub .Err ():
495456 require .NoError (t , err )
496457 case <- timeout :
497- t .Fatal ("timeout waiting for events" )
458+ t .Skip ("timeout reached, no events received " )
498459 }
499460 }
500461 })
@@ -639,7 +600,7 @@ func TestSubscribeNewTransactionReceipts(t *testing.T) {
639600
640601 defer sub .Unsubscribe ()
641602
642- timeout := time .After (10 * time .Second )
603+ timeout := time .After (20 * time .Second )
643604
644605 counter := 0
645606 for {
@@ -716,6 +677,8 @@ func TestSubscribeNewTransactionReceipts(t *testing.T) {
716677 preConfirmedReceived := false
717678 acceptedOnL2Received := false
718679
680+ timeout := time .After (20 * time .Second )
681+
719682 for {
720683 select {
721684 case resp := <- txnReceipts :
@@ -736,6 +699,11 @@ func TestSubscribeNewTransactionReceipts(t *testing.T) {
736699 }
737700 case err := <- sub .Err ():
738701 require .NoError (t , err )
702+
703+ case <- timeout :
704+ assert .True (t , (preConfirmedReceived && acceptedOnL2Received ), "no txns received from both finality statuses" )
705+
706+ return
739707 }
740708 }
741709 })
@@ -850,7 +818,7 @@ func TestSubscribeNewTransactions(t *testing.T) {
850818 require .NoError (t , err )
851819 require .NotNil (t , sub )
852820
853- timeout := time .After (10 * time .Second )
821+ timeout := time .After (20 * time .Second )
854822
855823 for {
856824 select {
@@ -885,7 +853,8 @@ func TestSubscribeNewTransactions(t *testing.T) {
885853
886854 defer sub .Unsubscribe ()
887855
888- timeout := time .After (10 * time .Second )
856+ // outside the loop, to avoid it being resetted
857+ timeout := time .After (20 * time .Second )
889858
890859 counter := 0
891860 for {
@@ -921,7 +890,8 @@ func TestSubscribeNewTransactions(t *testing.T) {
921890
922891 defer sub .Unsubscribe ()
923892
924- timeout := time .After (10 * time .Second )
893+ // outside the loop, to avoid it being resetted
894+ timeout := time .After (20 * time .Second )
925895
926896 counter := 0
927897 for {
@@ -960,7 +930,8 @@ func TestSubscribeNewTransactions(t *testing.T) {
960930 preConfirmedReceived := false
961931 acceptedOnL2Received := false
962932
963- timeout := time .After (10 * time .Second )
933+ // outside the loop, to avoid it being resetted
934+ timeout := time .After (20 * time .Second )
964935
965936 for {
966937 select {
@@ -1009,7 +980,8 @@ func TestSubscribeNewTransactions(t *testing.T) {
1009980 preConfirmedReceived := false
1010981 acceptedOnL2Received := false
1011982
1012- timeout := time .After (10 * time .Second )
983+ // outside the loop, to avoid it being resetted
984+ timeout := time .After (20 * time .Second )
1013985
1014986 for {
1015987 select {
@@ -1068,7 +1040,7 @@ func TestSubscribeNewTransactions(t *testing.T) {
10681040
10691041 defer sub .Unsubscribe ()
10701042
1071- timeout := time .After (10 * time .Second )
1043+ timeout := time .After (20 * time .Second )
10721044
10731045 counter := 0
10741046 for {
0 commit comments