use integration_tests_sv2::{interceptor::MessageDirection, template_provider::DifficultyLevel, *};
use stratum_apps::stratum_core::common_messages_sv2::*;
#[tokio::test]
async fn sv2_mining_device_and_pool_success() {
start_tracing();
let (_tp, tp_addr) = start_template_provider(None, DifficultyLevel::Low);
let (pool, pool_addr, _) = start_pool(sv2_tp_config(tp_addr), vec![], vec![], false).await;
let (sniffer, sniffer_addr) = start_sniffer("A", pool_addr, false, vec![], None);
start_mining_device_sv2(sniffer_addr, None, None, None, 1, None, true);
sniffer
.wait_for_message_type(MessageDirection::ToUpstream, MESSAGE_TYPE_SETUP_CONNECTION)
.await;
sniffer
.wait_for_message_type(
MessageDirection::ToDownstream,
MESSAGE_TYPE_SETUP_CONNECTION_SUCCESS,
)
.await;
pool.shutdown().await;
}