Skip to content

Commit

Permalink
test init as a separate function
Browse files Browse the repository at this point in the history
  • Loading branch information
gurinderu committed Jun 12, 2024
1 parent 1dee982 commit a1e7f21
Showing 1 changed file with 82 additions and 54 deletions.
136 changes: 82 additions & 54 deletions crates/nox-tests/tests/chain_listener.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ use chain_connector::Offer::{ComputePeer, ComputeUnit, OfferCalls};
use chain_connector::{CCStatus, CommitmentId};
use chain_data::{parse_peer_id, peer_id_to_bytes};
use chain_listener::CommitmentActivated;
use created_swarm::make_swarms_with_cfg;
use created_swarm::{make_swarms_with_cfg, CreatedSwarm};
use log_utils::enable_logs;
use server_config::ChainConfig;
use server_config::ChainListenerConfig;
Expand Down Expand Up @@ -535,48 +535,65 @@ fn to_hex_with_prefix<T: AsRef<[u8]>>(data: T) -> String {
format!("0x{}", hex_string)
}

struct ChainListenerTestEntities {
ccp_server: CCPServer,
chain_server: ChainServer,
swarms: Vec<CreatedSwarm>,
events_dir: TempDir,
}

impl ChainListenerTestEntities {
pub async fn new() -> eyre::Result<Self> {
let chain_server = ChainServer::new(
"cc_contract_address".to_string(),
"core_contract_address".to_string(),
"market_contract_address".to_string(),
ChainState::default(),
)
.await?;

let ccp_server = CCPServer::new().await?;
let events_dir = TempDir::new()?;
let cc_events_dir = events_dir.path().to_path_buf();
let chain_server_address = chain_server.address.clone();
let ccp_server_address = ccp_server.address.clone();
let swarms = make_swarms_with_cfg(1, move |mut cfg| {
cfg.chain_config = Some(ChainConfig {
http_endpoint: format!("http://{}", chain_server_address),
cc_contract_address: "cc_contract_address".to_string(),
core_contract_address: "core_contract_address".to_string(),
market_contract_address: "market_contract_address".to_string(),
network_id: 0,
wallet_key: PrivateKey::from_str(
"0xfdc4ba94809c7930fe4676b7d845cbf8fa5c1beae8744d959530e5073004cf3f",
)
.unwrap(),
default_base_fee: None,
default_priority_fee: None,
});
cfg.chain_listener_config = Some(ChainListenerConfig {
ws_endpoint: format!("ws://{}", chain_server_address),
ccp_endpoint: Some(format!("http://{}", ccp_server_address)),
proof_poll_period: Duration::from_secs(5),
});

cfg.cc_events_dir = Some(cc_events_dir.clone());
cfg
})
.await;
Ok(Self {
ccp_server,
chain_server,
swarms,
events_dir,
})
}
}

#[tokio::test]
async fn test_cc_activation_flow() {
enable_logs();
let chain_server = ChainServer::new(
"cc_contract_address".to_string(),
"core_contract_address".to_string(),
"market_contract_address".to_string(),
ChainState::default(),
)
.await
.unwrap();

let ccp_server = CCPServer::new().await.unwrap();

let events_dir = TempDir::new().unwrap();
let cc_events_dir = events_dir.path().to_path_buf();
let chain_server_address = chain_server.address.clone();
let ccp_server_address = ccp_server.address.clone();
let swarms = make_swarms_with_cfg(1, move |mut cfg| {
cfg.chain_config = Some(ChainConfig {
http_endpoint: format!("http://{}", chain_server_address),
cc_contract_address: "cc_contract_address".to_string(),
core_contract_address: "core_contract_address".to_string(),
market_contract_address: "market_contract_address".to_string(),
network_id: 0,
wallet_key: PrivateKey::from_str(
"0xfdc4ba94809c7930fe4676b7d845cbf8fa5c1beae8744d959530e5073004cf3f",
)
.unwrap(),
default_base_fee: None,
default_priority_fee: None,
});
cfg.chain_listener_config = Some(ChainListenerConfig {
ws_endpoint: format!("ws://{}", chain_server_address),
ccp_endpoint: Some(format!("http://{}", ccp_server_address)),
proof_poll_period: Duration::from_secs(5),
});

cfg.cc_events_dir = Some(cc_events_dir.clone());
cfg
})
.await;
let test_entities = ChainListenerTestEntities::new().await.unwrap();

let owner_address = Address::from(fixed_bytes!("9b5baa60fa4004a0f72b65416fc1dae6d3e88611"));
let offer_id = fixed_bytes!("17376d336cc28febe907ebf32629d63717eb5d4b0e1bb0e3d5e7c72db6ad58e5");
Expand All @@ -602,27 +619,38 @@ async fn test_cc_activation_flow() {
owner: owner_address,
};

chain_server.register_peer(RegisterPeerParams {
state: hashmap! {
swarms[0].peer_id => PeerState {
units: vec![compute_unit_1],
compute_peer: compute_peer_1
test_entities
.chain_server
.register_peer(RegisterPeerParams {
state: hashmap! {
test_entities.swarms[0].peer_id => PeerState {
units: vec![compute_unit_1],
compute_peer: compute_peer_1
},
},
},
});
});

let _ = chain_server.send_next_block();
let _ = test_entities.chain_server.send_next_block();

// Create commitment with status wait delegation
chain_server.create_commitment(swarms[0].peer_id, &commitment_id);
let _ = chain_server.send_next_block();

let _ = chain_server.activate_commitment(swarms[0].peer_id, &commitment_id, 100);
test_entities
.chain_server
.create_commitment(test_entities.swarms[0].peer_id, &commitment_id);
let _ = test_entities.chain_server.send_next_block();

let _ = test_entities.chain_server.activate_commitment(
test_entities.swarms[0].peer_id,
&commitment_id,
100,
);
//active commitment on epoch 3
let _ = chain_server.send_next_block();
let _ = test_entities.chain_server.send_next_block();

//assert CCP
let result = ccp_server.wait_active_commitment_params(1).await;
let result = test_entities
.ccp_server
.wait_active_commitment_params(1)
.await;
let result = result.first().unwrap();

assert_eq!(
Expand Down

0 comments on commit a1e7f21

Please sign in to comment.