Merge doc_tests and tests

This commit is contained in:
Aleksey Kladov 2020-05-06 10:18:12 +02:00
parent 25e6bbde01
commit d308ff910b
4 changed files with 28 additions and 41 deletions

View file

@ -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);
}

View file

@ -13,8 +13,6 @@ macro_rules! eprintln {
mod assist_ctx;
mod marks;
#[cfg(test)]
mod doc_tests;
#[cfg(test)]
mod tests;
pub mod utils;
pub mod ast_transform;

View file

@ -34,6 +34,34 @@ pub(crate) fn check_assist_not_applicable(assist: Handler, ra_fixture: &str) {
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> {
NotApplicable,
After(&'a str),