use crate::{GazelleClient, GazelleError, User};
impl GazelleClient {
pub async fn get_user(&mut self, id: u32) -> Result<User, GazelleError> {
self.get(format!("action=user&id={id}")).await
}
}
#[cfg(test)]
mod tests {
use crate::tests::{init_logger, load_config};
use crate::{GazelleClient, GazelleError};
#[tokio::test]
async fn get_user() -> Result<(), GazelleError> {
init_logger();
for (name, config) in load_config() {
println!("Indexer: {name}");
let mut client = GazelleClient::from(config.client);
let response = client.get_user(config.examples.user).await?;
assert!(!response.username.is_empty());
}
Ok(())
}
#[tokio::test]
#[allow(clippy::panic)]
async fn get_user_invalid() -> Result<(), GazelleError> {
init_logger();
let id = u32::MAX;
for (name, config) in load_config() {
println!("Indexer: {name}");
let mut client = GazelleClient::from(config.client.clone());
let error = client.get_user(id).await.expect_err("should be an error");
println!("{error:?}");
assert!(matches!(error, GazelleError::BadRequest { message: _ }));
}
Ok(())
}
}