From d67fee632853d80781d67397190d8d70036e6372 Mon Sep 17 00:00:00 2001 From: Mingwei Samuel Date: Mon, 4 Mar 2024 15:04:11 -0800 Subject: [PATCH] test: add test for spectator-v5 --- riven/tests/tests_euw.rs | 43 +++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/riven/tests/tests_euw.rs b/riven/tests/tests_euw.rs index 34e7b96..63c8b49 100644 --- a/riven/tests/tests_euw.rs +++ b/riven/tests/tests_euw.rs @@ -52,7 +52,7 @@ async fn championmastery_getall_ma5tery() -> Result<(), String> { /// https://github.com/RiotGames/developer-relations/issues/602 #[riven_test] -async fn spectator_combo() -> Result<(), String> { +async fn spectator_v4_combo() -> Result<(), String> { let featured_p = riot_api().spectator_v4().get_featured_games(ROUTE); let featured = featured_p.await.map_err(|e| e.to_string())?; @@ -61,10 +61,6 @@ async fn spectator_combo() -> Result<(), String> { return Ok(()); } - // let summoner_name = &featured.game_list[0].participants[0].summoner_name; - // let summoner_p = riot_api().summoner_v4().get_by_summoner_name(ROUTE, summoner_name); - // let summoner = summoner_p.await.map_err(|e| e.to_string())?.ok_or_else(|| "Failed to find summoner".to_owned())?; - let featured_game = &featured.game_list[0]; let participant = &featured_game.participants[0]; let summoner_id = participant.summoner_id.as_ref().ok_or_else(|| { @@ -91,3 +87,40 @@ async fn spectator_combo() -> Result<(), String> { } Ok(()) } + +#[riven_test] +async fn spectator_v5_combo() -> Result<(), String> { + let featured_p = riot_api().spectator_v5().get_featured_games(ROUTE); + let featured = featured_p.await.map_err(|e| e.to_string())?; + + if featured.game_list.is_empty() { + eprintln!("Featured game list is empty!"); + return Ok(()); + } + + let featured_game = &featured.game_list[0]; + let participant = &featured_game.participants[0]; + let puuid = participant.puuid.as_ref().ok_or_else(|| { + format!( + "Summoner in spectator featured game missing summoner ID: {}", + &participant.summoner_name + ) + })?; + + let livegame_p = riot_api() + .spectator_v5() + .get_current_game_info_by_puuid(ROUTE, &puuid); + let livegame_o = livegame_p.await.map_err(|e| e.to_string())?; + if let Some(livegame) = livegame_o { + let participant_match = livegame + .participants + .iter() + .find(|p| p.summoner_name == participant.summoner_name); + rassert!( + participant_match.is_some(), + "Failed to find summoner in match: {}.", + &participant.summoner_name + ); + } + Ok(()) +}