helius 1.1.0

An asynchronous Helius Rust SDK for building the future of Solana
Documentation
use helius::types::Cluster;
use helius::websocket::{
    EnhancedWebsocket, DEFAULT_MAX_FAILED_PINGS, DEFAULT_PING_DURATION_SECONDS, ENHANCED_WEBSOCKET_URL_DEVNET,
    ENHANCED_WEBSOCKET_URL_MAINNET,
};

#[test]
fn test_get_url_mainnet() {
    let url = EnhancedWebsocket::get_url(&Cluster::MainnetBeta, "test_key").unwrap();
    assert_eq!(url, "wss://atlas-mainnet.helius-rpc.com/?api-key=test_key");
}

#[test]
fn test_get_url_devnet() {
    let url = EnhancedWebsocket::get_url(&Cluster::Devnet, "test_key").unwrap();
    assert_eq!(url, "wss://atlas-devnet.helius-rpc.com/?api-key=test_key");
}

#[test]
fn test_get_url_staked_mainnet_errors() {
    let result = EnhancedWebsocket::get_url(&Cluster::StakedMainnetBeta, "test_key");
    assert!(
        result.is_err(),
        "StakedMainnetBeta should not be supported for WebSocket"
    );
}

#[test]
fn test_get_url_empty_api_key() {
    let url = EnhancedWebsocket::get_url(&Cluster::MainnetBeta, "").unwrap();
    assert_eq!(url, "wss://atlas-mainnet.helius-rpc.com/?api-key=");
}

#[test]
fn test_get_url_api_key_with_special_characters() {
    let url = EnhancedWebsocket::get_url(&Cluster::MainnetBeta, "key-with_special.chars123").unwrap();
    assert_eq!(
        url,
        "wss://atlas-mainnet.helius-rpc.com/?api-key=key-with_special.chars123"
    );
}

#[test]
fn test_websocket_url_constants() {
    assert_eq!(
        ENHANCED_WEBSOCKET_URL_MAINNET,
        "wss://atlas-mainnet.helius-rpc.com/?api-key="
    );
    assert_eq!(
        ENHANCED_WEBSOCKET_URL_DEVNET,
        "wss://atlas-devnet.helius-rpc.com/?api-key="
    );
}

#[test]
fn test_default_ping_constants() {
    assert_eq!(DEFAULT_PING_DURATION_SECONDS, 10);
    assert_eq!(DEFAULT_MAX_FAILED_PINGS, 3);
}