mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-04 19:29:07 +00:00
Return snapshots to tests
This commit is contained in:
parent
f123539ad2
commit
d38bf1624d
@ -118,43 +118,59 @@ mod tests {
|
|||||||
},
|
},
|
||||||
CompletionItemKind,
|
CompletionItemKind,
|
||||||
};
|
};
|
||||||
use insta::{assert_snapshot, assert_debug_snapshot};
|
use insta::assert_debug_snapshot;
|
||||||
use rustc_hash::FxHashSet;
|
|
||||||
|
|
||||||
fn do_keyword_completion(code: &str) -> Vec<CompletionItem> {
|
fn do_keyword_completion(code: &str) -> Vec<CompletionItem> {
|
||||||
do_completion(code, CompletionKind::Keyword)
|
do_completion(code, CompletionKind::Keyword)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn assert_completion_keyword(code: &str, keywords: &[(&str, &str)]) {
|
fn get_completion_text_and_assert_positions(code: &str) -> Vec<(String, String)> {
|
||||||
let (position, completion_items) =
|
let (position, completion_items) =
|
||||||
do_completion_with_position(code, CompletionKind::Keyword);
|
do_completion_with_position(code, CompletionKind::Keyword);
|
||||||
let mut expected_keywords = FxHashSet::<(String, String)>::default();
|
let mut returned_keywords = Vec::<(String, String)>::new();
|
||||||
for (key, value) in keywords {
|
|
||||||
expected_keywords.insert(((*key).to_string(), (*value).to_string()));
|
|
||||||
}
|
|
||||||
let mut returned_keywords = FxHashSet::<(String, String)>::default();
|
|
||||||
|
|
||||||
for item in completion_items {
|
for item in completion_items {
|
||||||
assert!(item.text_edit().len() == 1);
|
debug_assert!(item.text_edit().len() == 1);
|
||||||
assert!(item.kind() == Some(CompletionItemKind::Keyword));
|
assert!(item.kind() == Some(CompletionItemKind::Keyword));
|
||||||
let atom = item.text_edit().iter().next().unwrap().clone();
|
let atom = item.text_edit().iter().next().unwrap().clone();
|
||||||
assert!(atom.delete.start() == position.offset);
|
assert!(atom.delete.start() == position.offset);
|
||||||
assert!(atom.delete.end() == position.offset);
|
assert!(atom.delete.end() == position.offset);
|
||||||
let pair = (item.label().to_string(), atom.insert);
|
let pair = (item.label().to_string(), atom.insert);
|
||||||
returned_keywords.insert(pair);
|
returned_keywords.push(pair);
|
||||||
}
|
}
|
||||||
let assert_failed_message = format!("Expected keywords: {:#?}\nReceived keywords: {:#?}", expected_keywords, returned_keywords);
|
returned_keywords.sort();
|
||||||
debug_assert!(returned_keywords == expected_keywords, assert_failed_message);
|
returned_keywords
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn completes_keywords_in_use_stmt_new_approach() {
|
fn completes_keywords_in_use_stmt_new_approach() {
|
||||||
assert_completion_keyword(
|
assert_debug_snapshot!(
|
||||||
r"
|
get_completion_text_and_assert_positions(r"
|
||||||
use <|>
|
use <|>
|
||||||
",
|
"),
|
||||||
&[("crate", "crate::"), ("self", "self"), ("super", "super::")],
|
@r###"
|
||||||
|
[
|
||||||
|
(
|
||||||
|
"crate",
|
||||||
|
"crate::",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"self",
|
||||||
|
"self",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"super",
|
||||||
|
"super::",
|
||||||
|
),
|
||||||
|
]
|
||||||
|
"###
|
||||||
);
|
);
|
||||||
|
// assert_completion_keyword(
|
||||||
|
// r"
|
||||||
|
// use <|>
|
||||||
|
// ",
|
||||||
|
// &[("crate", "crate::"), ("self", "self"), ("super", "super::")],
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
Reference in New Issue
Block a user