test(app-iced): 钉住错行里不可见字符的 U+XXXX 形态(M250 r1 小事 2)

This commit is contained in:
AskaEth committed 2026-11-11 15:54:59 +08:00
1 parent 14282f3325
commit c14622f828
1 file changed
+21
@@ -212,3 +212,24 @@ fn visible(ch: char) -> String {
format!("U+{:04X}", u32::from(ch))
}
}
#[cfg(test)]
mod tests {
use super::visible;
/// 错行里的字符必须**看得见**:不可见字符写成 `U+XXXX`,可见字符原样(r1 小事 2)。
///
/// 抓得住:把 `visible` 改回 `ch.to_string()`——`U+00A0` / `U+200B` 那两条立刻红(错行会变成
/// 「强调色里有非十六进制字符:」后面一片空白,用户不知道自己错在哪)。
/// 抓不住:句子本身(词表在 `unlucky-i18n`)。
#[test]
fn invisible_characters_are_shown_as_code_points() {
assert_eq!(visible('\u{a0}'), "U+00A0", "不换行空格看不见");
assert_eq!(visible('\u{200b}'), "U+200B", "零宽空格看不见");
assert_eq!(visible('\u{202e}'), "U+202E", "RTL 覆盖符看不见");
assert_eq!(visible(' '), "U+0020", "普通空格也看不见");
assert_eq!(visible('z'), "z", "可见字符原样");
assert_eq!(visible('#'), "#", "ASCII 标点原样");
assert_eq!(visible('中'), "中", "非 ASCII 可见字符原样");
}
}