cleanup tests

This commit is contained in:
Robin Appelman 2024-02-25 13:40:32 +01:00
commit 22366e957f
3 changed files with 87 additions and 128 deletions

34
Cargo.lock generated
View file

@ -1399,6 +1399,39 @@ dependencies = [
"utf-8", "utf-8",
] ]
[[package]]
name = "test-case"
version = "3.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8"
dependencies = [
"test-case-macros",
]
[[package]]
name = "test-case-core"
version = "3.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f"
dependencies = [
"cfg-if",
"proc-macro2",
"quote",
"syn 2.0.50",
]
[[package]]
name = "test-case-macros"
version = "3.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.50",
"test-case-core",
]
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.57" version = "1.0.57"
@ -1558,6 +1591,7 @@ dependencies = [
"scraper", "scraper",
"serde", "serde",
"steamid-ng", "steamid-ng",
"test-case",
"thiserror", "thiserror",
"time", "time",
"tokio", "tokio",

View file

@ -20,6 +20,7 @@ serde = { version = "1.0.197", features = ["derive"], optional = true }
tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread", "rt"] } tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread", "rt"] }
main_error = "0.1.2" main_error = "0.1.2"
insta = { version = "1.35.1", features = ["json"] } insta = { version = "1.35.1", features = ["json"] }
test-case = "3.3.1"
[profile.dev.package] [profile.dev.package]
insta.opt-level = 3 insta.opt-level = 3

View file

@ -1,174 +1,98 @@
use insta::assert_json_snapshot; use insta::assert_json_snapshot;
use std::fs::read_to_string; use std::fs::read_to_string;
use test_case::test_case;
use ugc_scraper::parser::{ use ugc_scraper::parser::{
MapHistoryParser, MatchPageParser, Parser, PlayerDetailsParser, PlayerParser, SeasonsParser, MapHistoryParser, MatchPageParser, Parser, PlayerDetailsParser, PlayerParser, SeasonsParser,
TeamLookupParser, TeamMatchesParser, TeamParser, TeamRosterHistoryParser, TransactionParser, TeamLookupParser, TeamMatchesParser, TeamParser, TeamRosterHistoryParser, TransactionParser,
}; };
#[test] #[test_case("player_76561198024494988.html", "player")]
fn test_parse_player_html() { #[test_case("player_76561198049312442.html", "player_classes")]
let body = read_to_string("tests/data/player_76561198024494988.html").unwrap(); fn test_parse_player_html(input: &str, name: &str) {
let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = PlayerParser::new(); let parser = PlayerParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("player_details_76561198024494988.html", "player_details")]
fn test_parse_player_classes_html() { fn test_parse_player_details_html(input: &str, name: &str) {
let body = read_to_string("tests/data/player_76561198049312442.html").unwrap(); let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = PlayerParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_player_details_html() {
let body = read_to_string("tests/data/player_details_76561198024494988.html").unwrap();
let parser = PlayerDetailsParser::new(); let parser = PlayerDetailsParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("team_7861.html", "team")]
fn test_parse_team_html() { #[test_case("team_4105.html", "older_team")]
let body = read_to_string("tests/data/team_7861.html").unwrap(); #[test_case("team_8157.html", "team_no_tz")]
#[test_case("team_6929.html", "team_changed_name")]
#[test_case("team_32437.html", "team_empty_name_change")]
fn test_parse_team_html(input: &str, name: &str) {
let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = TeamParser::new(); let parser = TeamParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("team_roster_history_7861.html", "team_roster_history")]
fn test_parse_older_team_html() { fn test_parse_team_roster_history_html(input: &str, name: &str) {
let body = read_to_string("tests/data/team_4105.html").unwrap(); let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = TeamParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_team_no_tz_html() {
let body = read_to_string("tests/data/team_8157.html").unwrap();
let parser = TeamParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_team_changed_name_html() {
let body = read_to_string("tests/data/team_6929.html").unwrap();
let parser = TeamParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_team_empty_name_change_html() {
let body = read_to_string("tests/data/team_32437.html").unwrap();
let parser = TeamParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_team_roster_history_html() {
let body = read_to_string("tests/data/team_roster_history_7861.html").unwrap();
let parser = TeamRosterHistoryParser::new(); let parser = TeamRosterHistoryParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("team_matches_7861.html", "team_matches")]
fn test_parse_team_matches_html() { fn test_parse_team_matches_html(input: &str, name: &str) {
let body = read_to_string("tests/data/team_matches_7861.html").unwrap(); let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = TeamMatchesParser::new(); let parser = TeamMatchesParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("index.html", "seasons")]
fn test_parse_seasons_html() { fn test_parse_seasons_html(input: &str, name: &str) {
let body = read_to_string("tests/data/index.html").unwrap(); let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = SeasonsParser::new(); let parser = SeasonsParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("lookup_9v9.html", "seasons_9")]
fn test_parse_seasons_9_html() { #[test_case("lookup_6v6.html", "seasons_6")]
let body = read_to_string("tests/data/lookup_9v9.html").unwrap(); #[test_case("lookup_4v4.html", "seasons_4")]
#[test_case("lookup_2v2.html", "seasons_2")]
fn test_parse_seasons_mode_html(input: &str, name: &str) {
let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = TeamLookupParser::new(); let parser = TeamLookupParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("match_116246.html", "match")]
fn test_parse_seasons_6_html() { fn test_parse_match_html(input: &str, name: &str) {
let body = read_to_string("tests/data/lookup_6v6.html").unwrap(); let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = TeamLookupParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_seasons_4_html() {
let body = read_to_string("tests/data/lookup_4v4.html").unwrap();
let parser = TeamLookupParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_seasons_2_html() {
let body = read_to_string("tests/data/lookup_2v2.html").unwrap();
let parser = TeamLookupParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_match_html() {
let body = read_to_string("tests/data/match_116246.html").unwrap();
let parser = MatchPageParser::new(); let parser = MatchPageParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("transactions_4v4.html", "transaction")]
fn test_parse_transaction_html() { fn test_parse_transaction_html(input: &str, name: &str) {
let body = read_to_string("tests/data/transactions_4v4.html").unwrap(); let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = TransactionParser::new(); let parser = TransactionParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
} }
#[test] #[test_case("map_9v9.html", "maps_9")]
fn test_parse_maps_9_html() { #[test_case("map_6v6.html", "maps_6")]
let body = read_to_string("tests/data/map_9v9.html").unwrap(); #[test_case("map_4v4.html", "maps_4")]
#[test_case("map_2v2.html", "maps_2")]
fn test_parse_maps_html(input: &str, name: &str) {
let body = read_to_string(&format!("tests/data/{input}")).unwrap();
let parser = MapHistoryParser::new(); let parser = MapHistoryParser::new();
let parsed = parser.parse(&body).unwrap(); let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed); assert_json_snapshot!(format!("parse_{name}_html"), parsed);
}
#[test]
fn test_parse_maps_6_html() {
let body = read_to_string("tests/data/map_6v6.html").unwrap();
let parser = MapHistoryParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_maps_4_html() {
let body = read_to_string("tests/data/map_4v4.html").unwrap();
let parser = MapHistoryParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
}
#[test]
fn test_parse_maps_2_html() {
let body = read_to_string("tests/data/map_2v2.html").unwrap();
let parser = MapHistoryParser::new();
let parsed = parser.parse(&body).unwrap();
assert_json_snapshot!(parsed);
} }