mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 04:44:57 +00:00
Merge doc_tests and tests
This commit is contained in:
parent
25e6bbde01
commit
d308ff910b
4 changed files with 28 additions and 41 deletions
|
@ -1,39 +0,0 @@
|
||||||
//! Each assist definition has a special comment, which specifies docs and
|
|
||||||
//! example.
|
|
||||||
//!
|
|
||||||
//! We collect all the example and write the as tests in this module.
|
|
||||||
|
|
||||||
mod generated;
|
|
||||||
|
|
||||||
use ra_db::FileRange;
|
|
||||||
use test_utils::{assert_eq_text, extract_range_or_offset};
|
|
||||||
|
|
||||||
use crate::resolved_assists;
|
|
||||||
|
|
||||||
fn check(assist_id: &str, before: &str, after: &str) {
|
|
||||||
let (selection, before) = extract_range_or_offset(before);
|
|
||||||
let (db, file_id) = crate::tests::with_single_file(&before);
|
|
||||||
let frange = FileRange { file_id, range: selection.into() };
|
|
||||||
|
|
||||||
let assist = resolved_assists(&db, frange)
|
|
||||||
.into_iter()
|
|
||||||
.find(|assist| assist.label.id.0 == assist_id)
|
|
||||||
.unwrap_or_else(|| {
|
|
||||||
panic!(
|
|
||||||
"\n\nAssist is not applicable: {}\nAvailable assists: {}",
|
|
||||||
assist_id,
|
|
||||||
resolved_assists(&db, frange)
|
|
||||||
.into_iter()
|
|
||||||
.map(|assist| assist.label.id.0)
|
|
||||||
.collect::<Vec<_>>()
|
|
||||||
.join(", ")
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
let actual = {
|
|
||||||
let mut actual = before.clone();
|
|
||||||
assist.action.edit.apply(&mut actual);
|
|
||||||
actual
|
|
||||||
};
|
|
||||||
assert_eq_text!(after, &actual);
|
|
||||||
}
|
|
|
@ -13,8 +13,6 @@ macro_rules! eprintln {
|
||||||
mod assist_ctx;
|
mod assist_ctx;
|
||||||
mod marks;
|
mod marks;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod doc_tests;
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests;
|
mod tests;
|
||||||
pub mod utils;
|
pub mod utils;
|
||||||
pub mod ast_transform;
|
pub mod ast_transform;
|
||||||
|
|
|
@ -34,6 +34,34 @@ pub(crate) fn check_assist_not_applicable(assist: Handler, ra_fixture: &str) {
|
||||||
check(assist, ra_fixture, ExpectedResult::NotApplicable);
|
check(assist, ra_fixture, ExpectedResult::NotApplicable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn check_doc_test(assist_id: &str, before: &str, after: &str) {
|
||||||
|
let (selection, before) = extract_range_or_offset(before);
|
||||||
|
let (db, file_id) = crate::tests::with_single_file(&before);
|
||||||
|
let frange = FileRange { file_id, range: selection.into() };
|
||||||
|
|
||||||
|
let assist = resolved_assists(&db, frange)
|
||||||
|
.into_iter()
|
||||||
|
.find(|assist| assist.label.id.0 == assist_id)
|
||||||
|
.unwrap_or_else(|| {
|
||||||
|
panic!(
|
||||||
|
"\n\nAssist is not applicable: {}\nAvailable assists: {}",
|
||||||
|
assist_id,
|
||||||
|
resolved_assists(&db, frange)
|
||||||
|
.into_iter()
|
||||||
|
.map(|assist| assist.label.id.0)
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.join(", ")
|
||||||
|
)
|
||||||
|
});
|
||||||
|
|
||||||
|
let actual = {
|
||||||
|
let mut actual = before.clone();
|
||||||
|
assist.action.edit.apply(&mut actual);
|
||||||
|
actual
|
||||||
|
};
|
||||||
|
assert_eq_text!(after, &actual);
|
||||||
|
}
|
||||||
|
|
||||||
enum ExpectedResult<'a> {
|
enum ExpectedResult<'a> {
|
||||||
NotApplicable,
|
NotApplicable,
|
||||||
After(&'a str),
|
After(&'a str),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue