#[cfg(test)]
mod tests {
use crate::{GasNetworkClient, Chain, OracleType};
#[tokio::test]
async fn test_client_creation() {
let client = GasNetworkClient::new("test_api_key".to_string());
assert!(client.is_ok());
}
#[test]
fn test_chain_as_str() {
assert_eq!(Chain::Ethereum.as_str(), "ethereum");
assert_eq!(Chain::Base.as_str(), "base");
assert_eq!(Chain::Arbitrum.as_str(), "arbitrum");
}
#[test]
fn test_supported_chains() {
let chains = GasNetworkClient::supported_chains();
assert!(chains.contains(&Chain::Ethereum));
assert!(chains.contains(&Chain::Base));
assert!(chains.len() > 5);
}
#[test]
fn test_oracle_type_conversion() {
let base_fee_type: u32 = OracleType::BaseFeePerGas.into();
assert_eq!(base_fee_type, 107);
let blob_fee_type: u32 = OracleType::BlobBaseFeePerGas.into();
assert_eq!(blob_fee_type, 112);
let priority_fee_type: u32 = OracleType::PredictedMaxPriorityFeePerGas.into();
assert_eq!(priority_fee_type, 322);
}
#[test]
fn test_chains_supporting_base_fee() {
let chains = GasNetworkClient::chains_supporting_base_fee();
assert_eq!(chains, vec![Chain::Ethereum]);
}
#[test]
fn test_chains_supporting_distribution() {
let chains = GasNetworkClient::chains_supporting_distribution();
assert_eq!(chains, vec![Chain::Ethereum]);
}
}