aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/src/program/config.rs
diff options
context:
space:
mode:
authorWeicao-CatilGrass <1992414357@qq.com>2026-06-09 21:08:20 +0800
committerWeicao-CatilGrass <1992414357@qq.com>2026-06-09 22:23:16 +0800
commit514929c3b8ee0d4f540be5eb4bc8c1a10e62095d (patch)
tree8faeeb71075a695354496af38eb527085bb37f92 /mingling_core/src/program/config.rs
parent92cccd9517e764508dfa0342ae2ea254661d0a8f (diff)
Add unit and integration tests for mingling_core
Diffstat (limited to 'mingling_core/src/program/config.rs')
-rw-r--r--mingling_core/src/program/config.rs142
1 files changed, 142 insertions, 0 deletions
diff --git a/mingling_core/src/program/config.rs b/mingling_core/src/program/config.rs
index 42603a5..4e193f2 100644
--- a/mingling_core/src/program/config.rs
+++ b/mingling_core/src/program/config.rs
@@ -206,3 +206,145 @@ impl std::fmt::Display for GeneralRendererSetting {
}
}
}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn program_stdout_setting_default() {
+ let s = ProgramStdoutSetting::default();
+ assert!(s.error_output);
+ assert!(s.render_output);
+ assert!(!s.silence_panic);
+ assert!(!s.verbose);
+ assert!(!s.quiet);
+ assert!(!s.debug);
+ assert!(s.color);
+ assert!(s.progress);
+ }
+
+ #[test]
+ fn program_user_context_default() {
+ let ctx = ProgramUserContext::default();
+ assert!(!ctx.help);
+ assert!(ctx.run_hook);
+ assert!(!ctx.confirm);
+ assert!(!ctx.dry_run);
+ assert!(!ctx.force);
+ assert!(!ctx.interactive);
+ assert!(!ctx.assume_yes);
+ }
+
+ #[cfg(feature = "general_renderer")]
+ mod general_renderer_tests {
+ use super::*;
+
+ #[test]
+ fn from_str_disable() {
+ let val: GeneralRendererSetting = "disable".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::Disable));
+ }
+
+ #[cfg(feature = "json_serde_fmt")]
+ #[test]
+ fn from_str_json() {
+ let val: GeneralRendererSetting = "json".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::Json));
+ }
+
+ #[cfg(feature = "json_serde_fmt")]
+ #[test]
+ fn from_str_json_pretty() {
+ let val: GeneralRendererSetting = "json-pretty".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::JsonPretty));
+ }
+
+ #[cfg(feature = "yaml_serde_fmt")]
+ #[test]
+ fn from_str_yaml() {
+ let val: GeneralRendererSetting = "yaml".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::Yaml));
+ }
+
+ #[cfg(feature = "toml_serde_fmt")]
+ #[test]
+ fn from_str_toml() {
+ let val: GeneralRendererSetting = "toml".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::Toml));
+ }
+
+ #[cfg(feature = "ron_serde_fmt")]
+ #[test]
+ fn from_str_ron() {
+ let val: GeneralRendererSetting = "ron".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::Ron));
+ }
+
+ #[cfg(feature = "ron_serde_fmt")]
+ #[test]
+ fn from_str_ron_pretty() {
+ let val: GeneralRendererSetting = "ron-pretty".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::RonPretty));
+ }
+
+ #[test]
+ fn from_str_invalid() {
+ let res: Result<GeneralRendererSetting, String> = "invalid".parse();
+ assert!(res.is_err());
+ }
+
+ #[test]
+ fn from_str_kebab_case() {
+ let val: GeneralRendererSetting = "JsonPretty".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::JsonPretty));
+ }
+
+ #[test]
+ fn from_str_case_insensitive() {
+ let val: GeneralRendererSetting = "JSON".parse().unwrap();
+ assert!(matches!(val, GeneralRendererSetting::Json));
+ }
+
+ #[test]
+ fn from_and_str() {
+ let val = <GeneralRendererSetting as From<&str>>::from("json");
+ assert!(
+ matches!(val, GeneralRendererSetting::Disable)
+ || matches!(val, GeneralRendererSetting::Json)
+ );
+
+ let val = <GeneralRendererSetting as From<&str>>::from("invalid");
+ assert!(matches!(val, GeneralRendererSetting::Disable));
+ }
+
+ #[test]
+ fn from_string() {
+ let val = <GeneralRendererSetting as From<String>>::from("json-pretty".to_string());
+ assert!(
+ matches!(val, GeneralRendererSetting::Disable)
+ || matches!(val, GeneralRendererSetting::JsonPretty)
+ );
+ }
+
+ #[test]
+ fn display_disable() {
+ assert_eq!(GeneralRendererSetting::Disable.to_string(), "disable");
+ }
+
+ #[cfg(feature = "json_serde_fmt")]
+ #[test]
+ fn display_json() {
+ assert_eq!(GeneralRendererSetting::Json.to_string(), "json");
+ }
+
+ #[cfg(feature = "json_serde_fmt")]
+ #[test]
+ fn display_json_pretty() {
+ assert_eq!(
+ GeneralRendererSetting::JsonPretty.to_string(),
+ "json-pretty"
+ );
+ }
+ }
+}