Unnamed repository; edit this file 'description' to name the repository.
test: add test case for convert_char_literal assist
| -rw-r--r-- | crates/ide-assists/src/handlers/convert_char_literal.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/convert_char_literal.rs b/crates/ide-assists/src/handlers/convert_char_literal.rs index 7269ade006..1ab0163752 100644 --- a/crates/ide-assists/src/handlers/convert_char_literal.rs +++ b/crates/ide-assists/src/handlers/convert_char_literal.rs @@ -44,3 +44,47 @@ pub(crate) fn convert_char_literal(acc: &mut Assists, ctx: &AssistContext<'_>) - Some(()) } + +#[cfg(test)] +mod tests { + use crate::tests::check_assist_by_label; + + use super::convert_char_literal; + + #[test] + fn ascii_char_to_ascii_and_unicode() { + let before = "const _: char = 'a'$0;"; + check_assist_by_label( + convert_char_literal, + before, + "const _: char = '\\x61';", + "Convert 'a' to '\\x61'", + ); + check_assist_by_label( + convert_char_literal, + before, + "const _: char = '\\u{61}';", + "Convert 'a' to '\\u{61}'", + ); + } + + #[test] + fn non_ascii_char_only_unicode() { + check_assist_by_label( + convert_char_literal, + "const _: char = '😀'$0;", + "const _: char = '\\u{1f600}';", + "Convert '😀' to '\\u{1f600}'", + ); + } + + #[test] + fn ascii_escape_can_convert_to_unicode() { + check_assist_by_label( + convert_char_literal, + "const _: char = '\\x61'$0;", + "const _: char = '\\u{61}';", + "Convert '\\x61' to '\\u{61}'", + ); + } +} |