use finance_query_core::*;
use std::sync::Arc;
async fn setup_client() -> YahooFinanceClient {
let fetch_client = Arc::new(FetchClient::new(None).unwrap());
let cookie_jar = fetch_client.cookie_jar().clone();
let auth_manager = Arc::new(YahooAuthManager::new(None, cookie_jar));
auth_manager.refresh().await.unwrap();
YahooFinanceClient::new(auth_manager, fetch_client)
}
#[tokio::test]
#[ignore] async fn test_get_dividends() {
let client = setup_client().await;
let dividends = client.get_dividends("AAPL", "1y").await.unwrap();
assert!(!dividends.is_empty(), "AAPL should have dividends");
let div = ÷nds[0];
assert!(div.amount > 0.0);
}
#[tokio::test]
#[ignore] async fn test_get_splits() {
let client = setup_client().await;
let splits = client.get_splits("AAPL", "max").await.unwrap();
assert!(!splits.is_empty());
}
#[tokio::test]
#[ignore] async fn test_get_actions() {
let client = setup_client().await;
let actions = client.get_actions("AAPL", "5y").await.unwrap();
assert!(!actions.is_empty());
assert!(!actions.dividends.is_empty());
assert!(actions.total_dividends() > 0.0);
}
#[tokio::test]
#[ignore] async fn test_capital_gains_etf() {
let client = setup_client().await;
let actions = client.get_actions("SPY", "5y").await.unwrap();
assert!(
actions.capital_gains.iter().all(|cg| cg.amount >= 0.0),
"capital gains amounts should be non-negative"
);
}