Files
todo-baggins/dioxus-i18n/tests/defects_spec.rs
2026-01-28 23:07:07 +01:00

45 lines
1.3 KiB
Rust

mod common;
use common::*;
use dioxus_i18n::{
prelude::{use_init_i18n, I18n, I18nConfig},
t,
};
use unic_langid::{langid, LanguageIdentifier};
#[test]
fn issue_15_recent_change_to_t_macro_unnecessarily_breaks_v0_3_code_test_attr() {
test_hook(i18n_from_static, |_, proxy| {
let panic = std::panic::catch_unwind(|| {
let name = "World";
t!(&format!("hello"), name: name)
});
proxy.assert(panic.is_ok(), true, "translate_from_static_source");
proxy.assert(
panic.ok().unwrap(),
"Hello, \u{2068}World\u{2069}!".to_string(),
"translate_from_static_source",
);
});
}
#[test]
fn issue_15_recent_change_to_t_macro_unnecessarily_breaks_v0_3_code_test_no_attr() {
test_hook(i18n_from_static, |_, proxy| {
let panic = std::panic::catch_unwind(|| t!(&format!("simple")));
proxy.assert(panic.is_ok(), true, "translate_from_static_source");
proxy.assert(
panic.ok().unwrap(),
"Hello, Zaphod!".to_string(),
"translate_from_static_source",
);
});
}
const EN: LanguageIdentifier = langid!("en");
fn i18n_from_static() -> I18n {
let config = I18nConfig::new(EN).with_locale((EN, include_str!("./data/i18n/en.ftl")));
use_init_i18n(|| config)
}