diff --git a/tests/config.rs b/tests/config.rs index bc6c3ad..ce35afc 100644 --- a/tests/config.rs +++ b/tests/config.rs @@ -1,5 +1,50 @@ use scootaloo::parse_toml; +#[test] +fn test_page_size() { + const DEFAULT_PAGE_SIZE: i32 = 200; + let toml = parse_toml("tests/page_size.toml"); + + assert_eq!(toml.twitter.page_size, Some(100)); + + assert_eq!(toml.mastodon.get("0").unwrap().twitter_page_size, None); + + assert_eq!(toml.mastodon.get("1").unwrap().twitter_page_size, Some(42)); + + // this is the exact line that is used inside fn run() to determine the twitter page size + // passed to fn get_user_timeline() + let page_size_for_0 = toml + .mastodon + .get("0") + .unwrap() + .twitter_page_size + .unwrap_or_else(|| toml.twitter.page_size.unwrap_or(DEFAULT_PAGE_SIZE)); + let page_size_for_1 = toml + .mastodon + .get("1") + .unwrap() + .twitter_page_size + .unwrap_or_else(|| toml.twitter.page_size.unwrap_or(DEFAULT_PAGE_SIZE)); + + assert_eq!(page_size_for_0, 100); + assert_eq!(page_size_for_1, 42); + + let toml = parse_toml("tests/no_page_size.toml"); + + assert_eq!(toml.twitter.page_size, None); + assert_eq!(toml.mastodon.get("0").unwrap().twitter_page_size, None); + + // and same here + let page_size_for_0 = toml + .mastodon + .get("0") + .unwrap() + .twitter_page_size + .unwrap_or_else(|| toml.twitter.page_size.unwrap_or(DEFAULT_PAGE_SIZE)); + + assert_eq!(page_size_for_0, 200); +} + #[test] fn test_parse_good_toml_rate_limit() { let parse_good_toml = parse_toml("tests/good_test_rate_limit.toml"); diff --git a/tests/no_page_size.toml b/tests/no_page_size.toml new file mode 100644 index 0000000..cfe544f --- /dev/null +++ b/tests/no_page_size.toml @@ -0,0 +1,19 @@ +[scootaloo] + +db_path="/var/random/scootaloo.sqlite" +cache_path="/tmp/scootaloo" + +[twitter] +consumer_key="rand consumer key" +consumer_secret="secret" +access_key="rand access key" +access_secret="super secret" + +[mastodon] +[mastodon.0] +twitter_screen_name="tamerelol" +base = "https://m.nintendojo.fr" +client_id = "rand client id" +client_secret = "secret" +redirect = "urn:ietf:wg:oauth:2.0:oob" +token = "super secret" diff --git a/tests/page_size.toml b/tests/page_size.toml new file mode 100644 index 0000000..d68df0d --- /dev/null +++ b/tests/page_size.toml @@ -0,0 +1,29 @@ +[scootaloo] + +db_path="/var/random/scootaloo.sqlite" +cache_path="/tmp/scootaloo" + +[twitter] +consumer_key="rand consumer key" +consumer_secret="secret" +access_key="rand access key" +access_secret="super secret" +page_size=100 + +[mastodon] +[mastodon.0] +twitter_screen_name="tamerelol" +base = "https://m.nintendojo.fr" +client_id = "rand client id" +client_secret = "secret" +redirect = "urn:ietf:wg:oauth:2.0:oob" +token = "super secret" + +[mastodon.1] +twitter_screen_name="tonperemdr" +twitter_page_size=42 +base = "https://m.nintendojo.fr" +client_id = "rand client id" +client_secret = "secret" +redirect = "urn:ietf:wg:oauth:2.0:oob" +token = "super secret"