@@ -5,7 +5,7 @@ use alloy::{
55} ;
66use alloy_node_bindings:: Anvil ;
77use event_scanner:: {
8- ScannerError , ScannerStatus , assert_closed, assert_empty, assert_next,
8+ ScannerError , ScannerStatus , assert_closed, assert_empty, assert_next, assert_range_coverage ,
99 block_range_scanner:: BlockRangeScanner ,
1010} ;
1111
@@ -22,11 +22,7 @@ async fn live_mode_processes_all_blocks_respecting_block_confirmations() -> anyh
2222
2323 provider. anvil_mine ( Some ( 5 ) , None ) . await ?;
2424
25- assert_next ! ( stream, 1 ..=1 ) ;
26- assert_next ! ( stream, 2 ..=2 ) ;
27- assert_next ! ( stream, 3 ..=3 ) ;
28- assert_next ! ( stream, 4 ..=4 ) ;
29- assert_next ! ( stream, 5 ..=5 ) ;
25+ assert_range_coverage ! ( stream, 1 ..=5 ) ;
3026 let mut stream = assert_empty ! ( stream) ;
3127
3228 provider. anvil_mine ( Some ( 1 ) , None ) . await ?;
@@ -40,11 +36,7 @@ async fn live_mode_processes_all_blocks_respecting_block_confirmations() -> anyh
4036
4137 provider. anvil_mine ( Some ( 5 ) , None ) . await ?;
4238
43- assert_next ! ( stream, 6 ..=6 ) ;
44- assert_next ! ( stream, 7 ..=7 ) ;
45- assert_next ! ( stream, 8 ..=8 ) ;
46- assert_next ! ( stream, 9 ..=9 ) ;
47- assert_next ! ( stream, 10 ..=10 ) ;
39+ assert_range_coverage ! ( stream, 6 ..=10 ) ;
4840 let mut stream = assert_empty ! ( stream) ;
4941
5042 provider. anvil_mine ( Some ( 1 ) , None ) . await ?;
@@ -75,11 +67,7 @@ async fn live_with_block_confirmations_always_emits_genesis_block() -> anyhow::R
7567
7668 provider. anvil_mine ( Some ( 5 ) , None ) . await ?;
7769
78- assert_next ! ( stream, 1 ..=1 ) ;
79- assert_next ! ( stream, 2 ..=2 ) ;
80- assert_next ! ( stream, 3 ..=3 ) ;
81- assert_next ! ( stream, 4 ..=4 ) ;
82- assert_next ! ( stream, 5 ..=5 ) ;
70+ assert_range_coverage ! ( stream, 1 ..=5 ) ;
8371 let mut stream = assert_empty ! ( stream) ;
8472
8573 provider. anvil_mine ( Some ( 1 ) , None ) . await ?;
@@ -133,26 +121,18 @@ async fn continuous_blocks_if_reorg_less_than_block_confirmation() -> anyhow::Re
133121 // assert initial block ranges immediately to avoid Anvil race condition:
134122 //
135123 // when a reorg happens after anvil_mine, Anvil occasionally first streams a non-zero block
136- // number, which makes it impossible to deterministically assert the next expected block range
124+ // number, which makes it impossible to deterministically assert the first expected block range
137125 // streamed by the scanner
138- assert_next ! ( stream, 0 ..=0 ) ;
139- assert_next ! ( stream, 1 ..=1 ) ;
140- assert_next ! ( stream, 2 ..=2 ) ;
141- assert_next ! ( stream, 3 ..=3 ) ;
142- assert_next ! ( stream, 4 ..=4 ) ;
143- assert_next ! ( stream, 5 ..=5 ) ;
126+ assert_range_coverage ! ( stream, 0 ..=5 ) ;
127+ let mut stream = assert_empty ! ( stream) ;
144128
145129 // reorg less blocks than the block_confirmation config
146130 provider. anvil_reorg ( ReorgOptions { depth : 4 , tx_block_pairs : vec ! [ ] } ) . await ?;
147131 // mint additional blocks so the scanner processes reorged blocks
148132 provider. anvil_mine ( Some ( 5 ) , None ) . await ?;
149133
150134 // no ReorgDetected should be emitted
151- assert_next ! ( stream, 6 ..=6 ) ;
152- assert_next ! ( stream, 7 ..=7 ) ;
153- assert_next ! ( stream, 8 ..=8 ) ;
154- assert_next ! ( stream, 9 ..=9 ) ;
155- assert_next ! ( stream, 10 ..=10 ) ;
135+ assert_range_coverage ! ( stream, 6 ..=10 ) ;
156136 assert_empty ! ( stream) ;
157137
158138 Ok ( ( ) )
@@ -173,16 +153,10 @@ async fn shallow_block_confirmation_does_not_mitigate_reorg() -> anyhow::Result<
173153 // assert initial block ranges immediately to avoid Anvil race condition:
174154 //
175155 // when a reorg happens after anvil_mine, Anvil occasionally first streams a non-zero block
176- // number, which makes it impossible to deterministically assert the next expected block range
156+ // number, which makes it impossible to deterministically assert the first expected block range
177157 // streamed by the scanner
178- assert_next ! ( stream, 0 ..=0 ) ;
179- assert_next ! ( stream, 1 ..=1 ) ;
180- assert_next ! ( stream, 2 ..=2 ) ;
181- assert_next ! ( stream, 3 ..=3 ) ;
182- assert_next ! ( stream, 4 ..=4 ) ;
183- assert_next ! ( stream, 5 ..=5 ) ;
184- assert_next ! ( stream, 6 ..=6 ) ;
185- assert_next ! ( stream, 7 ..=7 ) ;
158+ assert_range_coverage ! ( stream, 0 ..=7 ) ;
159+ let mut stream = assert_empty ! ( stream) ;
186160
187161 // reorg more blocks than the block_confirmation config
188162 provider. anvil_reorg ( ReorgOptions { depth : 8 , tx_block_pairs : vec ! [ ] } ) . await ?;
@@ -191,14 +165,7 @@ async fn shallow_block_confirmation_does_not_mitigate_reorg() -> anyhow::Result<
191165 provider. anvil_mine ( Some ( 3 ) , None ) . await ?;
192166
193167 assert_next ! ( stream, ScannerStatus :: ReorgDetected ) ;
194- assert_next ! ( stream, 3 ..=3 ) ;
195- assert_next ! ( stream, 4 ..=4 ) ;
196- assert_next ! ( stream, 5 ..=5 ) ;
197- assert_next ! ( stream, 6 ..=6 ) ;
198- assert_next ! ( stream, 7 ..=7 ) ;
199- assert_next ! ( stream, 8 ..=8 ) ;
200- assert_next ! ( stream, 9 ..=9 ) ;
201- assert_next ! ( stream, 10 ..=10 ) ;
168+ assert_range_coverage ! ( stream, 3 ..=10 ) ;
202169 assert_empty ! ( stream) ;
203170
204171 Ok ( ( ) )
0 commit comments