Files
nym/nym-api/tests/public-api/network.rs
T
2025-04-08 11:56:45 +02:00

65 lines
2.3 KiB
Rust

mod utils;
use utils::{base_url, test_client, validate_json_response};
use tokio;
#[tokio::test]
async fn test_get_chain_status() {
let url = format!("{}/v1/network/chain-status", base_url());
let res = test_client().get(&url).send().await.unwrap();
let json = validate_json_response(res).await;
let block_header = json
.get("status")
.and_then(|s| s.get("latest_block"))
.and_then(|b| b.get("block"))
.and_then(|b| b.get("header"))
.expect("Missing 'status.block.header'");
assert!(block_header.get("chain_id").is_some(), "Missing 'chain_id'");
assert!(block_header.get("height").is_some(), "Missing 'height'");
}
#[tokio::test]
async fn test_get_network_details() {
let url = format!("{}/v1/network/details", base_url());
let res = test_client().get(&url).send().await.unwrap();
let json = validate_json_response(res).await;
assert!(json.get("connected_nyxd").is_some(), "Missing 'connected_nyxd'");
let contracts = json
.get("network")
.and_then(|s| s.get("contracts"))
.expect("Missing 'contracts'");
assert!(contracts.get("mixnet_contract_address").is_some(), "Missing 'mixnet_contract_address'");
}
#[tokio::test]
async fn test_get_nym_contracts() {
let url = format!("{}/v1/network/nym-contracts", base_url());
let res = test_client().get(&url).send().await.unwrap();
let json = validate_json_response(res).await;
assert!(json.get("nym-mixnet-contract").is_some(), "Missing 'nym-mixnet-contract'");
assert!(json.get("nym-ecash-contract").is_some(), "Missing 'nym-ecash-contract'");
}
#[tokio::test]
async fn test_get_nym_contracts_detailed() {
let url = format!("{}/v1/network/nym-contracts-detailed", base_url());
let res = test_client().get(&url).send().await.unwrap();
let json = validate_json_response(res).await;
let mixnet_contract = json
.get("nym-mixnet-contract")
.and_then(|s| s.get("details"))
.expect("Missing details for mixnet contract");
assert!(mixnet_contract.get("commit_branch").is_some(), "Missing 'commit_branch'");
let ecash_contract = json
.get("nym-ecash-contract")
.and_then(|s| s.get("details"))
.expect("Missing details for ecash contract");
assert!(ecash_contract.get("commit_branch").is_some(), "Missing 'commit_branch'");
}