Skip to content

Commit 858afdc

Browse files
committed
test: add == pending block tests
1 parent 8345b83 commit 858afdc

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

src/event_scanner/scanner/historic.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,62 @@ mod tests {
170170
assert_eq!(builder.config.to_block, BlockNumberOrTag::Number(200).into());
171171
}
172172

173+
#[tokio::test]
174+
async fn test_from_block_equals_pending_returns_error() -> anyhow::Result<()> {
175+
let anvil = Anvil::new().try_spawn()?;
176+
let provider = ProviderBuilder::new().connect_http(anvil.endpoint_url());
177+
178+
provider.anvil_mine(Some(100), None).await?;
179+
180+
let pending_block = provider
181+
.get_block_by_number(BlockNumberOrTag::Pending)
182+
.await?
183+
.expect("pending block not found")
184+
.header
185+
.number;
186+
187+
let result = EventScannerBuilder::historic()
188+
.from_block(pending_block)
189+
.to_block(50)
190+
.connect(provider)
191+
.await;
192+
193+
match result {
194+
Err(ScannerError::PendingBlockNotSupported("from_block")) => {}
195+
_ => panic!("Expected PendingBlockNotSupported error"),
196+
}
197+
198+
Ok(())
199+
}
200+
201+
#[tokio::test]
202+
async fn test_to_block_equals_pending_returns_error() -> anyhow::Result<()> {
203+
let anvil = Anvil::new().try_spawn()?;
204+
let provider = ProviderBuilder::new().connect_http(anvil.endpoint_url());
205+
206+
provider.anvil_mine(Some(100), None).await?;
207+
208+
let pending_block = provider
209+
.get_block_by_number(BlockNumberOrTag::Pending)
210+
.await?
211+
.expect("pending block not found")
212+
.header
213+
.number;
214+
215+
let result = EventScannerBuilder::historic()
216+
.from_block(0)
217+
.to_block(pending_block)
218+
.connect(provider)
219+
.await;
220+
221+
match result {
222+
Err(ScannerError::PendingBlockNotSupported("to_block")) => {}
223+
_ => panic!("Expected PendingBlockNotSupported error"),
224+
}
225+
226+
Ok(())
227+
}
228+
173229
#[tokio::test]
174230
async fn test_from_block_above_pending_returns_error() -> anyhow::Result<()> {
175231
let anvil = Anvil::new().try_spawn()?;

src/event_scanner/scanner/latest.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,62 @@ mod tests {
324324
assert!(result.is_ok());
325325
}
326326

327+
#[tokio::test]
328+
async fn test_from_block_equals_pending_returns_error() -> anyhow::Result<()> {
329+
let anvil = Anvil::new().try_spawn()?;
330+
let provider = ProviderBuilder::new().connect_http(anvil.endpoint_url());
331+
332+
provider.anvil_mine(Some(100), None).await?;
333+
334+
let pending_block = provider
335+
.get_block_by_number(BlockNumberOrTag::Pending)
336+
.await?
337+
.expect("pending block not found")
338+
.header
339+
.number;
340+
341+
let result = EventScannerBuilder::latest(1)
342+
.from_block(pending_block)
343+
.to_block(50)
344+
.connect(provider)
345+
.await;
346+
347+
match result {
348+
Err(ScannerError::PendingBlockNotSupported("from_block")) => {}
349+
_ => panic!("Expected PendingBlockNotSupported error"),
350+
}
351+
352+
Ok(())
353+
}
354+
355+
#[tokio::test]
356+
async fn test_to_block_equals_pending_returns_error() -> anyhow::Result<()> {
357+
let anvil = Anvil::new().try_spawn()?;
358+
let provider = ProviderBuilder::new().connect_http(anvil.endpoint_url());
359+
360+
provider.anvil_mine(Some(100), None).await?;
361+
362+
let pending_block = provider
363+
.get_block_by_number(BlockNumberOrTag::Pending)
364+
.await?
365+
.expect("pending block not found")
366+
.header
367+
.number;
368+
369+
let result = EventScannerBuilder::latest(1)
370+
.from_block(0)
371+
.to_block(pending_block)
372+
.connect(provider)
373+
.await;
374+
375+
match result {
376+
Err(ScannerError::PendingBlockNotSupported("to_block")) => {}
377+
_ => panic!("Expected PendingBlockNotSupported error"),
378+
}
379+
380+
Ok(())
381+
}
382+
327383
#[tokio::test]
328384
async fn test_from_block_above_pending_returns_error() -> anyhow::Result<()> {
329385
let anvil = Anvil::new().try_spawn()?;

0 commit comments

Comments
 (0)