use garbage_code_hunter::i18n::I18n;
#[test]
fn test_i18n_chinese_messages() {
let i18n = I18n::new("zh-CN");
assert_eq!(i18n.get("title"), "ποΈ εεΎδ»£η ηδΊΊ ποΈ");
assert_eq!(i18n.get("preparing"), "ζ£ε¨εε€εζ§½δ½ η代η ...");
assert_eq!(
i18n.get("clean_code"),
"π εοΌδ½ η代η ε±
ηΆζ²‘ζζζΎηεεΎοΌ"
);
}
#[test]
fn test_i18n_english_messages() {
let i18n = I18n::new("en-US");
assert_eq!(i18n.get("title"), "ποΈ Garbage Code Hunter ποΈ");
assert_eq!(i18n.get("preparing"), "Preparing to roast your code...");
assert_eq!(
i18n.get("clean_code"),
"π Wow! Your code doesn't have obvious garbage!"
);
}
#[test]
fn test_i18n_fallback_to_english() {
let i18n = I18n::new("fr-FR");
assert_eq!(i18n.get("title"), "ποΈ Garbage Code Hunter ποΈ");
assert_eq!(i18n.get("preparing"), "Preparing to roast your code...");
}
#[test]
fn test_i18n_missing_key() {
let i18n = I18n::new("en-US");
let result = i18n.get("nonexistent_key");
assert!(result.contains("Missing translation"));
}
#[test]
fn test_roast_messages_chinese() {
let i18n = I18n::new("zh-CN");
let messages = i18n.get_roast_messages("terrible-naming");
assert!(
!messages.is_empty(),
"Should have roast messages for terrible naming"
);
assert!(
messages[0].contains("ειε"),
"Chinese messages should contain Chinese text"
);
let unwrap_messages = i18n.get_roast_messages("unwrap-abuse");
assert!(
!unwrap_messages.is_empty(),
"Should have roast messages for unwrap abuse"
);
assert!(
unwrap_messages[0].contains("unwrap"),
"Should mention unwrap"
);
}
#[test]
fn test_roast_messages_english() {
let i18n = I18n::new("en-US");
let messages = i18n.get_roast_messages("terrible-naming");
assert!(
!messages.is_empty(),
"Should have roast messages for terrible naming"
);
assert!(
messages[0].contains("variable"),
"English messages should contain English text"
);
let unwrap_messages = i18n.get_roast_messages("unwrap-abuse");
assert!(
!unwrap_messages.is_empty(),
"Should have roast messages for unwrap abuse"
);
assert!(
unwrap_messages[0].contains("unwrap"),
"Should mention unwrap"
);
}