Make stats collection opt-out

This commit is contained in:
Matthew Esposito
2023-06-09 17:26:23 -04:00
parent 255307a4f7
commit 5f562876f4
6 changed files with 42 additions and 12 deletions

@ -63,6 +63,9 @@ pub struct Config {
#[serde(rename = "LIBREDDIT_ROBOTS_DISABLE_INDEXING")]
pub(crate) robots_disable_indexing: Option<String>,
#[serde(rename = "LIBREDDIT_DISABLE_STATS_COLLECTION")]
pub(crate) disable_stats_collection: Option<String>,
}
impl Config {
@ -94,6 +97,7 @@ impl Config {
default_disable_visit_reddit_confirmation: parse("LIBREDDIT_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION"),
banner: parse("LIBREDDIT_BANNER"),
robots_disable_indexing: parse("LIBREDDIT_ROBOTS_DISABLE_INDEXING"),
disable_stats_collection: parse("LIBREDDIT_DISABLE_STATS_COLLECTION"),
}
}
}
@ -116,6 +120,7 @@ fn get_setting_from_config(name: &str, config: &Config) -> Option<String> {
"LIBREDDIT_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION" => config.default_disable_visit_reddit_confirmation.clone(),
"LIBREDDIT_BANNER" => config.banner.clone(),
"LIBREDDIT_ROBOTS_DISABLE_INDEXING" => config.robots_disable_indexing.clone(),
"LIBREDDIT_DISABLE_STATS_COLLECTION" => config.disable_stats_collection.clone(),
_ => None,
}
}
@ -162,3 +167,16 @@ fn test_alt_env_config_precedence() {
fn test_default_subscriptions() {
assert_eq!(get_setting("LIBREDDIT_DEFAULT_SUBSCRIPTIONS"), Some("news+bestof".into()));
}
#[test]
fn test_stats_collection_empty() {
assert_eq!(get_setting("LIBREDDIT_DISABLE_STATS_COLLECTION"), None);
}
#[test]
#[sealed_test]
fn test_stats_collection_true() {
let config_to_write = r#"LIBREDDIT_DISABLE_STATS_COLLECTION = "1""#;
write("libreddit.toml", config_to_write).unwrap();
assert!(get_setting("LIBREDDIT_DISABLE_STATS_COLLECTION").is_some());
}