#[cfg(test)]
mod tests {
use brawl_rs::prelude::*;
use std::env::var;
const TEST_PLAYER_TAG: &str = "20YY0G9L0";
const TEST_CLUB_TAG: &str = "82Y2QCCCQ";
#[tokio::test]
#[cfg(feature = "player")]
async fn test_player() {
let client = BrawlClient::new(var("BRAWL_TOKEN").unwrap());
let player = Player::get(&client, TEST_PLAYER_TAG).await;
assert!(player.is_ok());
let player = player.unwrap();
assert_eq!(player.tag, format!("#{TEST_PLAYER_TAG}"));
assert_eq!(player.name, "k1llm3sixy");
assert!(player.trophies > 0);
assert!(player.highest_trophies >= player.trophies);
assert!(!player.brawlers.is_empty());
}
#[tokio::test]
#[cfg(feature = "club")]
async fn test_club() {
let client = BrawlClient::new(var("BRAWL_TOKEN").unwrap());
let club = Club::get(&client, TEST_CLUB_TAG).await;
assert!(club.is_ok());
let club = club.unwrap();
assert_eq!(club.tag, format!("#{TEST_CLUB_TAG}"));
assert!(!club.name.is_empty());
assert!(!club.kind.is_empty());
assert!(club.trophies > 0);
assert!(club.badge_id > 0);
assert!(!club.members.is_empty());
}
#[tokio::test]
#[cfg(feature = "battle_log")]
async fn test_battle_log() {
let client = BrawlClient::new(var("BRAWL_TOKEN").unwrap());
let battle_log = BattleLog::get(&client, TEST_PLAYER_TAG).await;
assert!(battle_log.is_ok());
let battle_log = battle_log.unwrap();
if !battle_log.items.is_empty() {
for battle in &battle_log.items {
assert!(battle.battle_time <= chrono::Utc::now());
assert_ne!(battle.event.mode_id, 0);
assert!(!battle.battle.mode.is_empty());
assert!(!battle.battle.kind.is_empty());
}
}
}
#[tokio::test]
#[cfg(feature = "brawlers")]
async fn test_brawlers() {
let client = BrawlClient::new(var("BRAWL_TOKEN").unwrap());
let brawlers = Brawlers::get(&client).await;
assert!(brawlers.is_ok());
let brawlers = brawlers.unwrap();
assert!(!brawlers.items.is_empty());
for brawler in &brawlers.items {
assert!(brawler.id > 0);
assert!(!brawler.name.is_empty());
}
}
#[tokio::test]
#[cfg(feature = "events")]
async fn test_events() {
let client = BrawlClient::new(var("BRAWL_TOKEN").unwrap());
let game_modes = GameModes::get(&client).await;
assert!(game_modes.is_ok());
let game_modes = game_modes.unwrap();
assert!(!game_modes.items.is_empty());
let rotation = Rotation::get(&client).await;
assert!(rotation.is_ok());
let rotation = rotation.unwrap();
assert!(!rotation.is_empty());
for rot in &rotation {
assert!(rot.start_time < rot.end_time);
assert!(!rot.event.mode.is_empty());
assert!(!rot.event.map.is_empty());
}
}
#[tokio::test]
#[cfg(feature = "rankings")]
async fn test_rankings() {
let client = BrawlClient::new(var("BRAWL_TOKEN").unwrap());
let club_rankings = RankingsClub::get(&client, "global").await;
assert!(club_rankings.is_ok());
let club_rankings = club_rankings.unwrap();
assert!(!club_rankings.items.is_empty());
for club in &club_rankings.items {
assert!(!club.tag.is_empty());
assert!(!club.name.is_empty());
assert!(club.trophies > 0);
assert!(club.rank > 0);
assert!(club.badge_id > 0);
assert!(club.member_count > 0);
}
let player_rankings = RankingsPlayer::get(&client, "global").await;
assert!(player_rankings.is_ok());
let player_rankings = player_rankings.unwrap();
assert!(!player_rankings.items.is_empty());
for player in &player_rankings.items {
assert!(!player.tag.is_empty());
assert!(!player.name.is_empty());
assert!(player.trophies > 0);
assert!(player.rank > 0);
assert!(!player.name_color.is_empty());
}
}
}