cloudreve-api 0.8.4

A Rust library for interacting with Cloudreve API
Documentation
use cloudreve_api::{CloudreveClient, Result};

#[cfg(test)]
mod mock_tests {
    use super::*;

    #[tokio::test]
    async fn test_client_initialization() -> Result<()> {
        let client = CloudreveClient::new("https://example.com");

        assert_eq!(client.base_url, "https://example.com");
        assert!(client.token.is_none());

        Ok(())
    }

    #[tokio::test]
    async fn test_token_management() -> Result<()> {
        let mut client = CloudreveClient::new("https://example.com");

        // Test token setting
        client.set_token("test_token".to_string());
        assert_eq!(client.token, Some("test_token".to_string()));

        // Test token updating
        client.set_token("new_token".to_string());
        assert_eq!(client.token, Some("new_token".to_string()));

        Ok(())
    }

    #[tokio::test]
    async fn test_url_construction() -> Result<()> {
        let client = CloudreveClient::new("https://example.com");
        // Using reflection to access private get_url method indirectly
        // For now, just test basic functionality
        assert_eq!(client.base_url, "https://example.com");

        Ok(())
    }

    #[tokio::test]
    async fn test_client_clone() -> Result<()> {
        let client = CloudreveClient::new("https://example.com");
        let cloned_client = client.clone();

        assert_eq!(client.base_url, cloned_client.base_url);

        Ok(())
    }

    #[test]
    fn test_debug_output() {
        let client = CloudreveClient::new("https://example.com");
        let debug_output = format!("{:?}", client);

        assert!(debug_output.contains("ApiV4Client"));
        assert!(debug_output.contains("https://example.com"));
    }
}