v0.2.11-pre.007
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-offchain-transport-lib/tests/dependency_boundary.rs
|
||||
// version: 7
|
||||
// version: 8
|
||||
|
||||
#![warn(missing_docs)]
|
||||
#![deny(unreachable_pub)]
|
||||
@@ -87,3 +87,23 @@ fn pre_006_jupiter_and_dexscreener_stay_market_price_scoped_fixed_origin_and_dis
|
||||
assert!(!dexscreener.contains("std::env"));
|
||||
assert!(!jupiter.contains("std::env"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_007_birdeye_and_registry_remain_provider_owned_generic_and_fixed_origin() {
|
||||
let crate_root = include_str!("../src/lib.rs");
|
||||
assert!(crate_root.contains("mod market_price_birdeye;"));
|
||||
assert!(crate_root.contains("mod market_price_registry;"));
|
||||
let birdeye = include_str!("../src/market_price_birdeye.rs");
|
||||
let registry = include_str!("../src/market_price_registry.rs");
|
||||
assert!(birdeye.contains("https://public-api.birdeye.so/defi/price"));
|
||||
assert!(birdeye.contains("x-api-key"));
|
||||
assert!(birdeye.contains("x-chain"));
|
||||
assert!(birdeye.contains("So11111111111111111111111111111111111111112"));
|
||||
assert!(!birdeye.contains("std::env"));
|
||||
assert!(!registry.contains("CoinGecko"));
|
||||
assert!(!registry.contains("CoinMarketCap"));
|
||||
assert!(!registry.contains("CoinPaprika"));
|
||||
assert!(!registry.contains("DexScreener"));
|
||||
assert!(!registry.contains("Jupiter"));
|
||||
assert!(!registry.contains("Kraken"));
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-offchain-transport-lib/tests/public_api.rs
|
||||
// version: 7
|
||||
// version: 8
|
||||
|
||||
#![warn(missing_docs)]
|
||||
#![deny(unreachable_pub)]
|
||||
@@ -147,6 +147,42 @@ fn public_pre_006_jupiter_and_dexscreener_settings_and_adapters_are_available_fr
|
||||
return std::result::Result::Ok(());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn public_pre_007_birdeye_and_provider_registry_are_available_from_crate_root() -> ksp_core_lib::Result<()> {
|
||||
let settings = match ksp_offchain_transport_lib::MarketPriceBirdeyeSettings::new(false, std::option::Option::None) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
let provider = match ksp_offchain_transport_lib::MarketPriceBirdeyeProvider::new(settings) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
assert_eq!(provider.descriptor().id().as_str(), "birdeye");
|
||||
assert_eq!(provider.descriptor().semantics(), ksp_offchain_transport_lib::MarketPriceSemantics::SolanaSpot);
|
||||
let request_cost = match provider.descriptor().sol_usd_request_cost() {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => {
|
||||
return std::result::Result::Err(ksp_core_lib::Error::new(
|
||||
ksp_offchain_transport_lib::ERROR_CODE_MARKET_PRICE_PROVIDER_DESCRIPTOR_INVALID,
|
||||
"Birdeye descriptor is missing request-cost metadata",
|
||||
));
|
||||
},
|
||||
};
|
||||
assert_eq!(request_cost.amount(), 3);
|
||||
assert_eq!(request_cost.unit(), ksp_offchain_transport_lib::MarketPriceProviderQuotaUnit::ComputeUnits);
|
||||
let ready = ksp_offchain_transport_lib::MarketPriceProviderAvailability::Ready;
|
||||
assert!(ready.is_refresh_eligible());
|
||||
assert_eq!(ready.retry_at(), std::option::Option::None);
|
||||
let entry = ksp_offchain_transport_lib::MarketPriceProviderRegistryEntry::new(provider.descriptor().clone(), ready);
|
||||
let registry = match ksp_offchain_transport_lib::MarketPriceProviderRegistry::new(std::vec![entry]) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
std::result::Result::Err(error) => return std::result::Result::Err(error),
|
||||
};
|
||||
assert_eq!(registry.len(), 1);
|
||||
assert_eq!(registry.entries()[0].descriptor().id().as_str(), "birdeye");
|
||||
return std::result::Result::Ok(());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn offchain_error_codes_use_owned_domain() {
|
||||
let codes = [
|
||||
@@ -170,6 +206,7 @@ fn offchain_error_codes_use_owned_domain() {
|
||||
ksp_offchain_transport_lib::ERROR_CODE_MARKET_PRICE_PROVIDER_RESPONSE_INVALID,
|
||||
ksp_offchain_transport_lib::ERROR_CODE_MARKET_PRICE_OBSERVATION_INVALID,
|
||||
ksp_offchain_transport_lib::ERROR_CODE_MARKET_PRICE_PROVIDER_SETTINGS_INVALID,
|
||||
ksp_offchain_transport_lib::ERROR_CODE_MARKET_PRICE_REGISTRY_INVALID,
|
||||
];
|
||||
for code in codes {
|
||||
assert_eq!(code.domain(), "offchain_transport");
|
||||
|
||||
Reference in New Issue
Block a user