mirror of https://github.com/MingweiSamuel/Riven
feat: add wasm testing (#63)
parent
1d6b513aa7
commit
2f54bb6381
|
@ -36,6 +36,12 @@ deny-unknown-enum-variants = [ "deny-unknown-enum-variants-strings", "deny-unkno
|
||||||
deny-unknown-enum-variants-strings = []
|
deny-unknown-enum-variants-strings = []
|
||||||
deny-unknown-enum-variants-integers = []
|
deny-unknown-enum-variants-integers = []
|
||||||
|
|
||||||
|
__proxy = []
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "proxy"
|
||||||
|
required-features = [ "__proxy" ]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
futures = "0.3"
|
futures = "0.3"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
@ -60,8 +66,16 @@ web-time = "1.0.0"
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
env_logger = "0.10.0"
|
env_logger = "0.10.0"
|
||||||
fake_instant = "0.5.0"
|
fake_instant = "0.5.0"
|
||||||
hyper = { version = "0.14", features = [ "server" ] }
|
|
||||||
tokio = { version = "1", features = [ "full" ] }
|
|
||||||
tokio-shared-rt = "0.1"
|
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
tracing-subscriber = "0.2"
|
tracing-subscriber = "0.2"
|
||||||
|
|
||||||
|
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
|
||||||
|
hyper = { version = "0.14", features = [ "server" ] }
|
||||||
|
tokio = { version = "1", features = [ "macros", "rt-multi-thread" ] }
|
||||||
|
tokio-shared-rt = "0.1"
|
||||||
|
|
||||||
|
[target.'cfg(target_family = "wasm")'.dev-dependencies]
|
||||||
|
console_error_panic_hook = "0.1"
|
||||||
|
console_log = "1.0"
|
||||||
|
wasm-bindgen = "0.2"
|
||||||
|
wasm-bindgen-test = "0.3"
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
// #![deny(warnings)]
|
|
||||||
|
|
||||||
use std::convert::Infallible;
|
use std::convert::Infallible;
|
||||||
use std::sync::OnceLock;
|
use std::sync::OnceLock;
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ use testutils::*;
|
||||||
|
|
||||||
const ROUTE: PlatformRoute = PlatformRoute::RU;
|
const ROUTE: PlatformRoute = PlatformRoute::RU;
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn summoner_leagues() -> Result<(), String> {
|
async fn summoner_leagues() -> Result<(), String> {
|
||||||
let sum = riot_api()
|
let sum = riot_api()
|
||||||
.summoner_v4()
|
.summoner_v4()
|
||||||
|
|
|
@ -11,7 +11,7 @@ static MATCHES: &[&str] = &[
|
||||||
];
|
];
|
||||||
|
|
||||||
/// Account-v1
|
/// Account-v1
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn account_v1_getbyriotid_getbypuuid() -> Result<(), String> {
|
async fn account_v1_getbyriotid_getbypuuid() -> Result<(), String> {
|
||||||
// Game name is case and whitespace insensitive.
|
// Game name is case and whitespace insensitive.
|
||||||
// But tag cannot have spaces. (Is it case sensitive?).
|
// But tag cannot have spaces. (Is it case sensitive?).
|
||||||
|
@ -34,7 +34,7 @@ async fn account_v1_getbyriotid_getbypuuid() -> Result<(), String> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Tournament stub test.
|
/// Tournament stub test.
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tournamentstub() -> Result<(), String> {
|
async fn tournamentstub() -> Result<(), String> {
|
||||||
let ts = riot_api().tournament_stub_v5();
|
let ts = riot_api().tournament_stub_v5();
|
||||||
let provider_id = ts
|
let provider_id = ts
|
||||||
|
@ -95,12 +95,12 @@ async fn tournamentstub() -> Result<(), String> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn match_v5_get_test() -> Result<(), String> {
|
async fn match_v5_get_test() -> Result<(), String> {
|
||||||
match_v5_get(ROUTE, MATCHES).await
|
match_v5_get(ROUTE, MATCHES).await
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn match_v5_get_timeline_test() -> Result<(), String> {
|
async fn match_v5_get_timeline_test() -> Result<(), String> {
|
||||||
match_v5_get_timeline(ROUTE, MATCHES).await
|
match_v5_get_timeline(ROUTE, MATCHES).await
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ static MATCHES: &[&str] = &[
|
||||||
];
|
];
|
||||||
|
|
||||||
/// Summoner tests.
|
/// Summoner tests.
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn summoner_get_kanjikana() -> Result<(), String> {
|
async fn summoner_get_kanjikana() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.summoner_v4()
|
.summoner_v4()
|
||||||
|
@ -39,7 +39,7 @@ async fn summoner_get_kanjikana() -> Result<(), String> {
|
||||||
// Failure cases.
|
// Failure cases.
|
||||||
|
|
||||||
// /// Make sure get_raw_response(...) with invalid path fails as expected.
|
// /// Make sure get_raw_response(...) with invalid path fails as expected.
|
||||||
// #[tokio_shared_rt::test]
|
// #[riven_test]
|
||||||
// async fn raw_response_invalid -> Result<(), String> {
|
// async fn raw_response_invalid -> Result<(), String> {
|
||||||
// let p = riot_api().get_raw_response("summoner-v4.getBySummonerName", Region::JP.into(), "INVALID/PATH".to_owned(), None);
|
// let p = riot_api().get_raw_response("summoner-v4.getBySummonerName", Region::JP.into(), "INVALID/PATH".to_owned(), None);
|
||||||
// let r = p.await;
|
// let r = p.await;
|
||||||
|
@ -49,7 +49,7 @@ async fn summoner_get_kanjikana() -> Result<(), String> {
|
||||||
|
|
||||||
/// summoner_v4().get_by_summoner_name(...) normally returns an option.
|
/// summoner_v4().get_by_summoner_name(...) normally returns an option.
|
||||||
/// If we use `get` (instead of `get_optional`) make sure it errors.
|
/// If we use `get` (instead of `get_optional`) make sure it errors.
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn get_nonoptional_invalid() -> Result<(), String> {
|
async fn get_nonoptional_invalid() -> Result<(), String> {
|
||||||
let path_string = format!(
|
let path_string = format!(
|
||||||
"/lol/summoner/v4/summoners/by-name/{}",
|
"/lol/summoner/v4/summoners/by-name/{}",
|
||||||
|
@ -67,7 +67,7 @@ async fn get_nonoptional_invalid() -> Result<(), String> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check invalid code, make sure 403 is handled as expected.
|
/// Check invalid code, make sure 403 is handled as expected.
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tournament_forbidden() -> Result<(), String> {
|
async fn tournament_forbidden() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.tournament_v5()
|
.tournament_v5()
|
||||||
|
@ -84,7 +84,7 @@ async fn tournament_forbidden() -> Result<(), String> {
|
||||||
// Disabled: Caihonbbt no longer ranked.
|
// Disabled: Caihonbbt no longer ranked.
|
||||||
// /// tft-league-v1.getLeagueEntriesForSummoner
|
// /// tft-league-v1.getLeagueEntriesForSummoner
|
||||||
// /// https://github.com/MingweiSamuel/Riven/issues/25
|
// /// https://github.com/MingweiSamuel/Riven/issues/25
|
||||||
// #[tokio_shared_rt::test]
|
// #[riven_test]
|
||||||
// async fn tft_league_getleagueentriesforsummoner() -> Result<(), String> {
|
// async fn tft_league_getleagueentriesforsummoner() -> Result<(), String> {
|
||||||
// let sp = riot_api().summoner_v4().get_by_summoner_name(ROUTE, "Caihonbbt");
|
// let sp = riot_api().summoner_v4().get_by_summoner_name(ROUTE, "Caihonbbt");
|
||||||
// let sr = sp.await.map_err(|e| e.to_string())?.ok_or_else(|| "Failed to get \"Caihonbbt\"".to_owned())?;
|
// let sr = sp.await.map_err(|e| e.to_string())?.ok_or_else(|| "Failed to get \"Caihonbbt\"".to_owned())?;
|
||||||
|
@ -96,7 +96,7 @@ async fn tournament_forbidden() -> Result<(), String> {
|
||||||
|
|
||||||
/// tft-league-v1.getTopRatedLadder
|
/// tft-league-v1.getTopRatedLadder
|
||||||
/// https://github.com/MingweiSamuel/Riven/issues/24
|
/// https://github.com/MingweiSamuel/Riven/issues/24
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tft_league_gettopratedladder() -> Result<(), String> {
|
async fn tft_league_gettopratedladder() -> Result<(), String> {
|
||||||
let lp = riot_api()
|
let lp = riot_api()
|
||||||
.tft_league_v1()
|
.tft_league_v1()
|
||||||
|
@ -107,17 +107,17 @@ async fn tft_league_gettopratedladder() -> Result<(), String> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// ASIA regional tests
|
/// ASIA regional tests
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn league_v4_match_v5_latest_combo_test() -> Result<(), String> {
|
async fn league_v4_match_v5_latest_combo_test() -> Result<(), String> {
|
||||||
league_v4_match_v5_latest_combo(ROUTE).await
|
league_v4_match_v5_latest_combo(ROUTE).await
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn match_v5_get_test() -> Result<(), String> {
|
async fn match_v5_get_test() -> Result<(), String> {
|
||||||
match_v5_get(ROUTE.to_regional(), MATCHES).await
|
match_v5_get(ROUTE.to_regional(), MATCHES).await
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn match_v5_get_timeline_test() -> Result<(), String> {
|
async fn match_v5_get_timeline_test() -> Result<(), String> {
|
||||||
match_v5_get_timeline(ROUTE.to_regional(), MATCHES).await
|
match_v5_get_timeline(ROUTE.to_regional(), MATCHES).await
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,12 +22,12 @@ static MATCHES: &[&str] = &[
|
||||||
"EUW1_6568537080",
|
"EUW1_6568537080",
|
||||||
];
|
];
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn match_v5_get_test() -> Result<(), String> {
|
async fn match_v5_get_test() -> Result<(), String> {
|
||||||
match_v5_get(ROUTE, MATCHES).await
|
match_v5_get(ROUTE, MATCHES).await
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn match_v5_get_timeline_test() -> Result<(), String> {
|
async fn match_v5_get_timeline_test() -> Result<(), String> {
|
||||||
match_v5_get_timeline(ROUTE, MATCHES).await
|
match_v5_get_timeline(ROUTE, MATCHES).await
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ const ROUTE: PlatformRoute = PlatformRoute::EUW1;
|
||||||
|
|
||||||
// Champion Mastery tests
|
// Champion Mastery tests
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn championmastery_getscore_ma5tery() -> Result<(), String> {
|
async fn championmastery_getscore_ma5tery() -> Result<(), String> {
|
||||||
let sum = riot_api()
|
let sum = riot_api()
|
||||||
.summoner_v4()
|
.summoner_v4()
|
||||||
|
@ -30,7 +30,7 @@ async fn championmastery_getscore_ma5tery() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn championmastery_getall_ma5tery() -> Result<(), String> {
|
async fn championmastery_getall_ma5tery() -> Result<(), String> {
|
||||||
let sum = riot_api()
|
let sum = riot_api()
|
||||||
.summoner_v4()
|
.summoner_v4()
|
||||||
|
@ -51,7 +51,7 @@ async fn championmastery_getall_ma5tery() -> Result<(), String> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// https://github.com/RiotGames/developer-relations/issues/602
|
/// https://github.com/RiotGames/developer-relations/issues/602
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn spectator_combo() -> Result<(), String> {
|
async fn spectator_combo() -> Result<(), String> {
|
||||||
let featured_p = riot_api().spectator_v4().get_featured_games(ROUTE);
|
let featured_p = riot_api().spectator_v4().get_featured_games(ROUTE);
|
||||||
let featured = featured_p.await.map_err(|e| e.to_string())?;
|
let featured = featured_p.await.map_err(|e| e.to_string())?;
|
||||||
|
|
|
@ -14,20 +14,20 @@ static TFT_MATCHES: &[&str] = &[
|
||||||
"EUW1_6807630149",
|
"EUW1_6807630149",
|
||||||
];
|
];
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tftmatchv1_get_list() -> Result<(), String> {
|
async fn tftmatchv1_get_list() -> Result<(), String> {
|
||||||
tft_match_v1_get(ROUTE.to_regional(), TFT_MATCHES).await
|
tft_match_v1_get(ROUTE.to_regional(), TFT_MATCHES).await
|
||||||
}
|
}
|
||||||
|
|
||||||
// /// Don't have acecess to tft-status-v1.
|
// /// Don't have acecess to tft-status-v1.
|
||||||
// #[tokio_shared_rt::test]
|
// #[riven_test]
|
||||||
// async fn tftstatusv1_getplatformdata() -> Result<(), String> {
|
// async fn tftstatusv1_getplatformdata() -> Result<(), String> {
|
||||||
// let p = riot_api().tft_status_v1().get_platform_data(ROUTE);
|
// let p = riot_api().tft_status_v1().get_platform_data(ROUTE);
|
||||||
// let _s = p.await.map_err(|e| e.to_string())?;
|
// let _s = p.await.map_err(|e| e.to_string())?;
|
||||||
// Ok(())
|
// Ok(())
|
||||||
// }
|
// }
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tftleaguev1_gettopratedladder() -> Result<(), String> {
|
async fn tftleaguev1_gettopratedladder() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.tft_league_v1()
|
.tft_league_v1()
|
||||||
|
@ -41,7 +41,7 @@ async fn tftleaguev1_gettopratedladder() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tftmatchv1_getmatch() -> Result<(), String> {
|
async fn tftmatchv1_getmatch() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.tft_match_v1()
|
.tft_match_v1()
|
||||||
|
@ -53,7 +53,7 @@ async fn tftmatchv1_getmatch() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tftsummonerv1_getbyname() -> Result<(), String> {
|
async fn tftsummonerv1_getbyname() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.tft_summoner_v1()
|
.tft_summoner_v1()
|
||||||
|
@ -65,7 +65,7 @@ async fn tftsummonerv1_getbyname() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tftsummonerv1_getbyname_none() -> Result<(), String> {
|
async fn tftsummonerv1_getbyname_none() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.tft_summoner_v1()
|
.tft_summoner_v1()
|
||||||
|
@ -75,7 +75,7 @@ async fn tftsummonerv1_getbyname_none() -> Result<(), String> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get top rated player, get some of their matches.
|
/// Get top rated player, get some of their matches.
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn tft_combo() -> Result<(), String> {
|
async fn tft_combo() -> Result<(), String> {
|
||||||
let top_players = riot_api()
|
let top_players = riot_api()
|
||||||
.tft_league_v1()
|
.tft_league_v1()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
mod testutils;
|
mod testutils;
|
||||||
use riven::consts::*;
|
use riven::consts::*;
|
||||||
use testutils::riot_api;
|
use testutils::{riot_api, riven_test};
|
||||||
|
|
||||||
const ROUTE: PlatformRoute = PlatformRoute::LA1;
|
const ROUTE: PlatformRoute = PlatformRoute::LA1;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ const CHALLENGE_ID_ARAM_1K_DPM: i64 = 101101;
|
||||||
|
|
||||||
/// /lol/challenges/v1/challenges/{challengeId}/leaderboards/by-level/{level}
|
/// /lol/challenges/v1/challenges/{challengeId}/leaderboards/by-level/{level}
|
||||||
/// /lol/challenges/v1/player-data/{puuid}
|
/// /lol/challenges/v1/player-data/{puuid}
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn lol_challenges_v1_leaderboards_playerdata() -> Result<(), String> {
|
async fn lol_challenges_v1_leaderboards_playerdata() -> Result<(), String> {
|
||||||
let challenge_id = CHALLENGE_ID_ARAM_1K_DPM;
|
let challenge_id = CHALLENGE_ID_ARAM_1K_DPM;
|
||||||
let leaderboard = riot_api()
|
let leaderboard = riot_api()
|
||||||
|
@ -50,7 +50,7 @@ async fn lol_challenges_v1_leaderboards_playerdata() -> Result<(), String> {
|
||||||
|
|
||||||
/// /lol/challenges/v1/challenges/config
|
/// /lol/challenges/v1/challenges/config
|
||||||
/// /lol/challenges/v1/challenges/{challengeId}/config
|
/// /lol/challenges/v1/challenges/{challengeId}/config
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn lol_challenges_v1_check_configs() -> Result<(), String> {
|
async fn lol_challenges_v1_check_configs() -> Result<(), String> {
|
||||||
let challenges = riot_api()
|
let challenges = riot_api()
|
||||||
.lol_challenges_v1()
|
.lol_challenges_v1()
|
||||||
|
@ -84,7 +84,7 @@ async fn lol_challenges_v1_check_configs() -> Result<(), String> {
|
||||||
|
|
||||||
/// /lol/challenges/v1/challenges/percentiles
|
/// /lol/challenges/v1/challenges/percentiles
|
||||||
/// /lol/challenges/v1/challenges/{challengeId}/percentiles
|
/// /lol/challenges/v1/challenges/{challengeId}/percentiles
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn lol_challenges_v1_check_percentiles() -> Result<(), String> {
|
async fn lol_challenges_v1_check_percentiles() -> Result<(), String> {
|
||||||
// Check all percentiles.
|
// Check all percentiles.
|
||||||
let percentiles = riot_api()
|
let percentiles = riot_api()
|
||||||
|
|
|
@ -19,7 +19,7 @@ const ROUTE: PlatformRoute = PlatformRoute::NA1;
|
||||||
|
|
||||||
// Summoner tests.
|
// Summoner tests.
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn summoner_double() -> Result<(), String> {
|
async fn summoner_double() -> Result<(), String> {
|
||||||
let l1p = riot_api()
|
let l1p = riot_api()
|
||||||
.summoner_v4()
|
.summoner_v4()
|
||||||
|
@ -39,7 +39,7 @@ async fn summoner_double() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn champion_getrotation() -> Result<(), String> {
|
async fn champion_getrotation() -> Result<(), String> {
|
||||||
let p = riot_api().champion_v3().get_champion_info(ROUTE);
|
let p = riot_api().champion_v3().get_champion_info(ROUTE);
|
||||||
let d = p.await.map_err(|e| e.to_string())?;
|
let d = p.await.map_err(|e| e.to_string())?;
|
||||||
|
@ -52,7 +52,7 @@ async fn champion_getrotation() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn leagueexp_get() -> Result<(), String> {
|
async fn leagueexp_get() -> Result<(), String> {
|
||||||
let p = riot_api().league_exp_v4().get_league_entries(
|
let p = riot_api().league_exp_v4().get_league_entries(
|
||||||
ROUTE,
|
ROUTE,
|
||||||
|
@ -68,7 +68,7 @@ async fn leagueexp_get() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn champion_mastery_v4() -> Result<(), String> {
|
async fn champion_mastery_v4() -> Result<(), String> {
|
||||||
let summoner = riot_api()
|
let summoner = riot_api()
|
||||||
.summoner_v4()
|
.summoner_v4()
|
||||||
|
@ -87,7 +87,7 @@ async fn champion_mastery_v4() -> Result<(), String> {
|
||||||
|
|
||||||
// Commented out, requires special API key.
|
// Commented out, requires special API key.
|
||||||
// /// LOR
|
// /// LOR
|
||||||
// #[tokio_shared_rt::test]
|
// #[riven_test]
|
||||||
// async fn async fn lor_ranked_get_leaderboards() -> Result<(), String> {
|
// async fn async fn lor_ranked_get_leaderboards() -> Result<(), String> {
|
||||||
// let future = riot_api().lor_ranked_v1().get_leaderboards(Region::AMERICAS);
|
// let future = riot_api().lor_ranked_v1().get_leaderboards(Region::AMERICAS);
|
||||||
// let _leaderboard = future.await.map_err(|e| e.to_string())?;
|
// let _leaderboard = future.await.map_err(|e| e.to_string())?;
|
||||||
|
@ -96,7 +96,7 @@ async fn champion_mastery_v4() -> Result<(), String> {
|
||||||
|
|
||||||
// CLASH
|
// CLASH
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn clash_get_tournaments() -> Result<(), String> {
|
async fn clash_get_tournaments() -> Result<(), String> {
|
||||||
let p = riot_api().clash_v1().get_tournaments(ROUTE);
|
let p = riot_api().clash_v1().get_tournaments(ROUTE);
|
||||||
let tours = p.await.map_err(|e| e.to_string())?;
|
let tours = p.await.map_err(|e| e.to_string())?;
|
||||||
|
@ -108,7 +108,7 @@ async fn clash_get_tournaments() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn clash_get_team_by_id_invalid() -> Result<(), String> {
|
async fn clash_get_team_by_id_invalid() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.clash_v1()
|
.clash_v1()
|
||||||
|
@ -118,7 +118,7 @@ async fn clash_get_team_by_id_invalid() -> Result<(), String> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn status() -> Result<(), String> {
|
async fn status() -> Result<(), String> {
|
||||||
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
||||||
let status = p.await.map_err(|e| e.to_string())?;
|
let status = p.await.map_err(|e| e.to_string())?;
|
||||||
|
|
|
@ -4,7 +4,7 @@ use testutils::*;
|
||||||
|
|
||||||
const ROUTE: PlatformRoute = PlatformRoute::PH2;
|
const ROUTE: PlatformRoute = PlatformRoute::PH2;
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn status() -> Result<(), String> {
|
async fn status() -> Result<(), String> {
|
||||||
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
||||||
let status = p.await.map_err(|e| e.to_string())?;
|
let status = p.await.map_err(|e| e.to_string())?;
|
||||||
|
|
|
@ -4,7 +4,7 @@ use testutils::*;
|
||||||
|
|
||||||
const ROUTE: PlatformRoute = PlatformRoute::SG2;
|
const ROUTE: PlatformRoute = PlatformRoute::SG2;
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn status() -> Result<(), String> {
|
async fn status() -> Result<(), String> {
|
||||||
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
||||||
let status = p.await.map_err(|e| e.to_string())?;
|
let status = p.await.map_err(|e| e.to_string())?;
|
||||||
|
|
|
@ -4,7 +4,7 @@ use testutils::*;
|
||||||
|
|
||||||
const ROUTE: PlatformRoute = PlatformRoute::TH2;
|
const ROUTE: PlatformRoute = PlatformRoute::TH2;
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn status() -> Result<(), String> {
|
async fn status() -> Result<(), String> {
|
||||||
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
||||||
let status = p.await.map_err(|e| e.to_string())?;
|
let status = p.await.map_err(|e| e.to_string())?;
|
||||||
|
|
|
@ -1,37 +1,33 @@
|
||||||
mod testutils;
|
mod testutils;
|
||||||
|
use futures::future::join_all;
|
||||||
use riven::consts::*;
|
use riven::consts::*;
|
||||||
use riven::models::summoner_v4::Summoner;
|
use riven::models::summoner_v4::Summoner;
|
||||||
use testutils::riot_api;
|
use testutils::{riot_api, riven_test};
|
||||||
|
|
||||||
const ROUTE: PlatformRoute = PlatformRoute::TR1;
|
const ROUTE: PlatformRoute = PlatformRoute::TR1;
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn league_summoner_bulk_test() -> Result<(), String> {
|
async fn league_summoner_bulk_test() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.league_v4()
|
.league_v4()
|
||||||
.get_challenger_league(ROUTE, QueueType::RANKED_SOLO_5x5);
|
.get_challenger_league(ROUTE, QueueType::RANKED_SOLO_5x5);
|
||||||
// let p = future_start(p);
|
let league_list = p.await.map_err(|e| e.to_string())?;
|
||||||
let ll = p.await.map_err(|e| e.to_string())?;
|
|
||||||
|
|
||||||
println!("{:?} Challenger {} entries.", ROUTE, ll.entries.len());
|
println!(
|
||||||
|
"{:?} Challenger {} entries.",
|
||||||
|
ROUTE,
|
||||||
|
league_list.entries.len()
|
||||||
|
);
|
||||||
|
|
||||||
let sl = ll
|
let summoner_vec = join_all(league_list.entries.iter().take(50).map(|entry| {
|
||||||
.entries
|
riot_api()
|
||||||
.iter()
|
.summoner_v4()
|
||||||
.take(50)
|
.get_by_summoner_id(ROUTE, &entry.summoner_id)
|
||||||
.map(|entry| {
|
}))
|
||||||
riot_api()
|
.await;
|
||||||
.summoner_v4()
|
|
||||||
.get_by_summoner_id(ROUTE, &entry.summoner_id)
|
|
||||||
})
|
|
||||||
.map(tokio::spawn)
|
|
||||||
.collect::<Vec<_>>();
|
|
||||||
|
|
||||||
for (i, s) in sl.into_iter().enumerate() {
|
for (i, s) in summoner_vec.into_iter().enumerate() {
|
||||||
let summoner: Summoner = s
|
let summoner: Summoner = s.map_err(|e| e.to_string())?;
|
||||||
.await
|
|
||||||
.expect("tokio::spawn join error")
|
|
||||||
.map_err(|e| e.to_string())?;
|
|
||||||
println!("{}: {}", i + 1, summoner.name);
|
println!("{}: {}", i + 1, summoner.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
mod testutils;
|
mod testutils;
|
||||||
use riven::consts::*;
|
use riven::consts::*;
|
||||||
use testutils::riot_api;
|
use testutils::{riot_api, riven_test};
|
||||||
|
|
||||||
const ROUTE: ValPlatformRoute = ValPlatformRoute::LATAM;
|
const ROUTE: ValPlatformRoute = ValPlatformRoute::LATAM;
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn val_content_ranked_test() -> Result<(), String> {
|
async fn val_content_ranked_test() -> Result<(), String> {
|
||||||
let p = riot_api()
|
let p = riot_api()
|
||||||
.val_content_v1()
|
.val_content_v1()
|
||||||
|
|
|
@ -4,7 +4,7 @@ use testutils::*;
|
||||||
|
|
||||||
const ROUTE: PlatformRoute = PlatformRoute::VN2;
|
const ROUTE: PlatformRoute = PlatformRoute::VN2;
|
||||||
|
|
||||||
#[tokio_shared_rt::test]
|
#[riven_test]
|
||||||
async fn status() -> Result<(), String> {
|
async fn status() -> Result<(), String> {
|
||||||
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
let p = riot_api().lol_status_v4().get_platform_data(ROUTE);
|
||||||
let status = p.await.map_err(|e| e.to_string())?;
|
let status = p.await.map_err(|e| e.to_string())?;
|
||||||
|
|
|
@ -1,10 +1,41 @@
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code, unused_imports)]
|
||||||
|
|
||||||
|
#[cfg(not(target_family = "wasm"))]
|
||||||
|
use std::env::var as env_var;
|
||||||
use std::future::Future;
|
use std::future::Future;
|
||||||
use std::sync::OnceLock;
|
use std::sync::OnceLock;
|
||||||
|
|
||||||
|
use futures::try_join;
|
||||||
use riven::consts::{PlatformRoute, QueueType, RegionalRoute};
|
use riven::consts::{PlatformRoute, QueueType, RegionalRoute};
|
||||||
use riven::{RiotApi, RiotApiConfig};
|
use riven::{RiotApi, RiotApiConfig};
|
||||||
|
#[cfg(not(target_family = "wasm"))]
|
||||||
|
pub use tokio_shared_rt::test as riven_test;
|
||||||
|
#[cfg(target_family = "wasm")]
|
||||||
|
pub use wasm_bindgen_test::wasm_bindgen_test as riven_test;
|
||||||
|
#[cfg(target_family = "wasm")]
|
||||||
|
#[allow(non_upper_case_globals)]
|
||||||
|
pub fn env_var<K: AsRef<str>>(key: K) -> Result<String, std::env::VarError> {
|
||||||
|
use wasm_bindgen::prelude::wasm_bindgen;
|
||||||
|
|
||||||
|
#[wasm_bindgen]
|
||||||
|
extern "C" {
|
||||||
|
type Process;
|
||||||
|
static process: Process;
|
||||||
|
|
||||||
|
type Env;
|
||||||
|
|
||||||
|
#[wasm_bindgen(method, getter)]
|
||||||
|
fn env(this: &Process) -> Env;
|
||||||
|
|
||||||
|
#[wasm_bindgen(method, structural, indexing_getter)]
|
||||||
|
fn get(this: &Env, field: &str) -> Option<String>;
|
||||||
|
}
|
||||||
|
|
||||||
|
process
|
||||||
|
.env()
|
||||||
|
.get(key.as_ref())
|
||||||
|
.ok_or(std::env::VarError::NotPresent)
|
||||||
|
}
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! rassert {
|
macro_rules! rassert {
|
||||||
|
@ -40,9 +71,12 @@ static RIOT_API: OnceLock<RiotApi> = OnceLock::new();
|
||||||
pub fn riot_api() -> &'static RiotApi {
|
pub fn riot_api() -> &'static RiotApi {
|
||||||
RIOT_API.get_or_init(|| {
|
RIOT_API.get_or_init(|| {
|
||||||
// Initialize logger here, as a convenient trigger spot.
|
// Initialize logger here, as a convenient trigger spot.
|
||||||
|
#[cfg(not(target_family = "wasm"))]
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
#[cfg(target_family = "wasm")]
|
||||||
|
console_log::init_with_level(log::Level::Info).unwrap();
|
||||||
|
|
||||||
let api_key = std::env::var("RGAPI_KEY")
|
let api_key = env_var("RGAPI_KEY")
|
||||||
.ok()
|
.ok()
|
||||||
.or_else(|| {
|
.or_else(|| {
|
||||||
use std::iter::FromIterator;
|
use std::iter::FromIterator;
|
||||||
|
@ -112,7 +146,7 @@ pub async fn league_v4_match_v5_latest_combo(route: PlatformRoute) -> Result<(),
|
||||||
let mut match_ids: Vec<String> = match_ids.into_iter().flatten().collect();
|
let mut match_ids: Vec<String> = match_ids.into_iter().flatten().collect();
|
||||||
match_ids.sort_unstable_by(|a, b| a.cmp(b).reverse()); // Sort descending, so latest are first.
|
match_ids.sort_unstable_by(|a, b| a.cmp(b).reverse()); // Sort descending, so latest are first.
|
||||||
|
|
||||||
let _ = tokio::try_join!(
|
let _ = try_join!(
|
||||||
match_v5_get(route.to_regional(), match_ids.iter().take(NUM_MATCHES)),
|
match_v5_get(route.to_regional(), match_ids.iter().take(NUM_MATCHES)),
|
||||||
match_v5_get_timeline(route.to_regional(), match_ids.iter().take(NUM_MATCHES)),
|
match_v5_get_timeline(route.to_regional(), match_ids.iter().take(NUM_MATCHES)),
|
||||||
)?;
|
)?;
|
||||||
|
|
Loading…
Reference in New Issue