Re-add tft tests, failing

This commit is contained in:
Mingwei Samuel 2023-03-08 11:46:01 -08:00
parent 129002bf23
commit 9f5b12cd1b
2 changed files with 51 additions and 20 deletions

View file

@ -57,4 +57,5 @@ tracing = { version = "0.1", optional = true }
colored = "2"
env_logger = "0.9"
fake_instant = "0.4"
futures = "0.3"
tokio = { version = "1", default-features = false, features = [ "rt-multi-thread" ] }

View file

@ -53,27 +53,57 @@ async_tests!{
// Ok(())
// },
// // TFT tests.
// tftleaguev1_getchallengerleague: async {
// let p = RIOT_API.tft_league_v1().get_challenger_league(Region::EUW);
// let l = p.await.map_err(|e| e.to_string())?;
// rassert!(l.entries.len() > 10, "Expected a few challenger players, got: {}.", l.entries.len());
// Ok(())
// },
// tftmatchv1_getmatch: async {
// let p = RIOT_API.tft_match_v1().get_match(Region::EUROPE, "EUW1_4568680990");
// let _m = p.await.map_err(|e| e.to_string())?.ok_or("Failed to get TFT match.".to_owned())?;
// Ok(())
// },
// tftsummonerv1_getbyname: async {
// let p = RIOT_API.tft_summoner_v1().get_by_summoner_name(Region::EUW, "相当猥琐");
// let _s = p.await.map_err(|e| e.to_string())?.ok_or("Failed to get TFT summoner.".to_owned())?;
// Ok(())
// },
// tftsummonerv1_getbyname_none: async {
// let p = RIOT_API.tft_summoner_v1().get_by_summoner_name(Region::EUW, "this summoner does not exist");
// rassert!(p.await.map_err(|e| e.to_string())?.is_none());
// TFT tests.
// // Don't have acecess to tft-status-v1.
// tftstatusv1_getplatformdata: async {
// let p = RIOT_API.tft_status_v1().get_platform_data(ROUTE);
// let _s = p.await.map_err(|e| e.to_string())?;
// Ok(())
// },
tftleaguev1_getchallengerleague: async {
let p = RIOT_API.tft_league_v1().get_challenger_league(ROUTE);
let l = p.await.map_err(|e| e.to_string())?;
rassert!(l.entries.len() > 10, "Expected a few challenger players, got: {}.", l.entries.len());
Ok(())
},
tftmatchv1_getmatch: async {
let p = RIOT_API.tft_match_v1().get_match(ROUTE.to_regional(), "EUW1_4568680990");
let _m = p.await.map_err(|e| e.to_string())?.ok_or("Failed to get TFT match.".to_owned())?;
Ok(())
},
tftsummonerv1_getbyname: async {
let p = RIOT_API.tft_summoner_v1().get_by_summoner_name(ROUTE, "相当猥琐");
let _s = p.await.map_err(|e| e.to_string())?.ok_or("Failed to get TFT summoner.".to_owned())?;
Ok(())
},
tftsummonerv1_getbyname_none: async {
let p = RIOT_API.tft_summoner_v1().get_by_summoner_name(ROUTE, "this summoner does not exist");
rassert!(p.await.map_err(|e| e.to_string())?.is_none());
Ok(())
},
// Get top rated player, get some of their matches.
tft_combo: async {
let top_players = RIOT_API.tft_league_v1().get_top_rated_ladder(ROUTE, QueueType::RANKED_TFT_TURBO);
let top_players = top_players.await.map_err(|e| e.to_string())?;
rassert!(0 < top_players.len());
let top_player_entry = &top_players[0];
let top_player = RIOT_API.tft_summoner_v1().get_by_summoner_id(ROUTE, &*top_player_entry.summoner_id);
let top_player = top_player.await.map_err(|e| e.to_string())?;
println!("Top player is {} with `puuid` {}.", top_player.name, top_player.puuid);
let match_ids = RIOT_API.tft_match_v1().get_match_ids_by_puuid(
ROUTE.to_regional(), &*top_player.puuid, Some(10), None, None, None);
let match_ids = match_ids.await.map_err(|e| e.to_string())?;
let match_futures = match_ids.iter().map(|match_id| async move {
let result = RIOT_API.tft_match_v1().get_match(ROUTE.to_regional(), &**match_id).await;
result.map_err(|e| (match_id.clone(), e))
});
let matches = futures::future::try_join_all(match_futures).await.map_err(|(match_id, e)| format!("{}: {}", match_id, e))?;
for match_opt in matches.iter() {
rassert!(match_opt.is_some());
let mmatch = match_opt.as_ref().unwrap();
rassert!(0 < mmatch.info.participants.len());
}
Ok(())
},
}
}