+
+#[cfg(test)]
+mod tests {
+ #![allow(clippy::unwrap_used)]
+ #![allow(clippy::indexing_slicing)]
+
+ use crate::site::{application_question_check, site_default_post_listing_type_check};
+ use lemmy_db_schema::{ListingType, RegistrationMode};
+
+ #[test]
+ fn test_site_default_post_listing_type_check() {
+ assert!(site_default_post_listing_type_check(&None::<ListingType>).is_ok());
+ assert!(site_default_post_listing_type_check(&Some(ListingType::All)).is_ok());
+ assert!(site_default_post_listing_type_check(&Some(ListingType::Local)).is_ok());
+ assert!(site_default_post_listing_type_check(&Some(ListingType::Subscribed)).is_err());
+ }
+
+ #[test]
+ fn test_application_question_check() {
+ assert!(
+ application_question_check(&Some(String::from("q")), &Some(String::new()), RegistrationMode::RequireApplication).is_err(),
+ "Expected application to be invalid because an application is required, current question: {:?}, new question: {:?}",
+ "q",
+ String::new(),
+ );
+ assert!(
+ application_question_check(&None, &None, RegistrationMode::RequireApplication).is_err(),
+ "Expected application to be invalid because an application is required, current question: {:?}, new question: {:?}",
+ None::<String>,
+ None::<String>
+ );
+
+ assert!(
+ application_question_check(&None, &None, RegistrationMode::Open).is_ok(),
+ "Expected application to be valid because no application required, current question: {:?}, new question: {:?}, mode: {:?}",
+ None::<String>,
+ None::<String>,
+ RegistrationMode::Open
+ );
+ assert!(
+ application_question_check(&None, &Some(String::from("q")), RegistrationMode::RequireApplication).is_ok(),
+ "Expected application to be valid because new application provided, current question: {:?}, new question: {:?}, mode: {:?}",
+ None::<String>,
+ Some(String::from("q")),
+ RegistrationMode::RequireApplication
+ );
+ assert!(
+ application_question_check(&Some(String::from("q")), &None, RegistrationMode::RequireApplication).is_ok(),
+ "Expected application to be valid because application existed, current question: {:?}, new question: {:?}, mode: {:?}",
+ Some(String::from("q")),
+ None::<String>,
+ RegistrationMode::RequireApplication
+ );
+ }
+}