diff --git a/crates/iota-indexer/tests/rpc-tests/indexer_api.rs b/crates/iota-indexer/tests/rpc-tests/indexer_api.rs index 1f93b04d472..5acaf25ea64 100644 --- a/crates/iota-indexer/tests/rpc-tests/indexer_api.rs +++ b/crates/iota-indexer/tests/rpc-tests/indexer_api.rs @@ -9,138 +9,156 @@ use iota_types::{ base_types::{IotaAddress, ObjectID}, digests::TransactionDigest, }; -use serial_test::serial; -use crate::common::{ - indexer_wait_for_checkpoint, rpc_call_error_msg_matches, - start_test_cluster_with_read_write_indexer, -}; - -#[tokio::test] -#[serial] -async fn query_events_no_events_descending() { - let (_cluster, pg_store, indexer_client) = - start_test_cluster_with_read_write_indexer(None).await; - indexer_wait_for_checkpoint(&pg_store, 1).await; - - let indexer_events = indexer_client - .query_events( - EventFilter::Sender( - IotaAddress::from_str( - "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", - ) - .unwrap(), - ), - None, - None, - Some(true), - ) - .await - .unwrap(); - - assert_eq!(indexer_events, EventPage::empty()) +use crate::common::{indexer_wait_for_checkpoint, rpc_call_error_msg_matches, ApiTestSetup}; + +#[test] +fn query_events_no_events_descending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let indexer_events = client + .query_events( + EventFilter::Sender( + IotaAddress::from_str( + "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", + ) + .unwrap(), + ), + None, + None, + Some(true), + ) + .await + .unwrap(); + + assert_eq!(indexer_events, EventPage::empty()) + }); } -#[tokio::test] -#[serial] -async fn query_events_no_events_ascending() { - let (_cluster, pg_store, indexer_client) = - start_test_cluster_with_read_write_indexer(None).await; - indexer_wait_for_checkpoint(&pg_store, 1).await; - - let indexer_events = indexer_client - .query_events( - EventFilter::Sender( - IotaAddress::from_str( - "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", - ) - .unwrap(), - ), - None, - None, - None, - ) - .await - .unwrap(); - - assert_eq!(indexer_events, EventPage::empty()) +#[test] +fn query_events_no_events_ascending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let indexer_events = client + .query_events( + EventFilter::Sender( + IotaAddress::from_str( + "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", + ) + .unwrap(), + ), + None, + None, + None, + ) + .await + .unwrap(); + + assert_eq!(indexer_events, EventPage::empty()) + }); } -#[tokio::test] -#[serial] -async fn query_events_unsupported_events() { - let (_cluster, pg_store, indexer_client) = - start_test_cluster_with_read_write_indexer(None).await; - indexer_wait_for_checkpoint(&pg_store, 1).await; - - // Get the current time in milliseconds since the UNIX epoch - let now_millis = SystemTime::now() - .duration_since(SystemTime::UNIX_EPOCH) - .unwrap() - .as_millis(); - - // Subtract 10 minutes from the current time - let ten_minutes_ago = now_millis - (10 * 60 * 1000); // 600 seconds = 10 minutes - - let unsupported_filters = vec![ - EventFilter::All(vec![]), - EventFilter::Any(vec![]), - EventFilter::And( - Box::new(EventFilter::Any(vec![])), - Box::new(EventFilter::Any(vec![])), - ), - EventFilter::Or( - Box::new(EventFilter::Any(vec![])), - Box::new(EventFilter::Any(vec![])), - ), - EventFilter::TimeRange { - start_time: ten_minutes_ago as u64, - end_time: now_millis as u64, - }, - EventFilter::MoveEventField { - path: String::default(), - value: serde_json::Value::Bool(true), - }, - ]; - - for event_filter in unsupported_filters { - let result = indexer_client - .query_events(event_filter, None, None, None) - .await; - - assert!(rpc_call_error_msg_matches( - result, - r#"{"code":-32603,"message": "Indexer does not support the feature with error: `This type of EventFilter is not supported.`"}"#, - )); - } +#[test] +fn query_events_unsupported_events() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + // Get the current time in milliseconds since the UNIX epoch + let now_millis = SystemTime::now() + .duration_since(SystemTime::UNIX_EPOCH) + .unwrap() + .as_millis(); + + // Subtract 10 minutes from the current time + let ten_minutes_ago = now_millis - (10 * 60 * 1000); // 600 seconds = 10 minutes + + let unsupported_filters = vec![ + EventFilter::All(vec![]), + EventFilter::Any(vec![]), + EventFilter::And( + Box::new(EventFilter::Any(vec![])), + Box::new(EventFilter::Any(vec![])), + ), + EventFilter::Or( + Box::new(EventFilter::Any(vec![])), + Box::new(EventFilter::Any(vec![])), + ), + EventFilter::TimeRange { + start_time: ten_minutes_ago as u64, + end_time: now_millis as u64, + }, + EventFilter::MoveEventField { + path: String::default(), + value: serde_json::Value::Bool(true), + }, + ]; + + for event_filter in unsupported_filters { + let result = client + .query_events(event_filter, None, None, None) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32603,"message": "Indexer does not support the feature with error: `This type of EventFilter is not supported.`"}"#, + )); + } + }); } -#[tokio::test] -#[serial] -async fn query_events_supported_events() { - let (_cluster, pg_store, indexer_client) = - start_test_cluster_with_read_write_indexer(None).await; - indexer_wait_for_checkpoint(&pg_store, 1).await; - - let supported_filters = vec![ - EventFilter::Sender(IotaAddress::ZERO), - EventFilter::Transaction(TransactionDigest::ZERO), - EventFilter::Package(ObjectID::ZERO), - EventFilter::MoveEventModule { - package: ObjectID::ZERO, - module: "x".parse().unwrap(), - }, - EventFilter::MoveEventType("0xabcd::MyModule::Foo".parse().unwrap()), - EventFilter::MoveModule { - package: ObjectID::ZERO, - module: "x".parse().unwrap(), - }, - ]; - - for event_filter in supported_filters { - let result = indexer_client - .query_events(event_filter, None, None, None) - .await; - assert!(result.is_ok()); - } +#[test] +fn query_events_supported_events() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let supported_filters = vec![ + EventFilter::Sender(IotaAddress::ZERO), + EventFilter::Transaction(TransactionDigest::ZERO), + EventFilter::Package(ObjectID::ZERO), + EventFilter::MoveEventModule { + package: ObjectID::ZERO, + module: "x".parse().unwrap(), + }, + EventFilter::MoveEventType("0xabcd::MyModule::Foo".parse().unwrap()), + EventFilter::MoveModule { + package: ObjectID::ZERO, + module: "x".parse().unwrap(), + }, + ]; + + for event_filter in supported_filters { + let result = client.query_events(event_filter, None, None, None).await; + assert!(result.is_ok()); + } + }); } diff --git a/crates/iota-indexer/tests/rpc-tests/main.rs b/crates/iota-indexer/tests/rpc-tests/main.rs index df7236bdbda..10826b1da04 100644 --- a/crates/iota-indexer/tests/rpc-tests/main.rs +++ b/crates/iota-indexer/tests/rpc-tests/main.rs @@ -8,7 +8,7 @@ mod common; #[cfg(feature = "pg_integration")] mod extended_api; -#[cfg(feature = "pg_integration")] +#[cfg(feature = "shared_test_runtime")] mod indexer_api; #[cfg(feature = "shared_test_runtime")]