Fix tests
This commit is contained in:
parent
ad204f7562
commit
d1e8b8d134
@ -168,16 +168,27 @@ mod assists {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod helpers {
|
mod helpers {
|
||||||
use ra_db::{fixture::WithFixture, FileRange};
|
use std::sync::Arc;
|
||||||
use ra_ide_db::RootDatabase;
|
|
||||||
|
use ra_db::{fixture::WithFixture, FileId, FileRange, SourceDatabaseExt};
|
||||||
|
use ra_ide_db::{symbol_index::SymbolsDatabase, RootDatabase};
|
||||||
use ra_syntax::TextRange;
|
use ra_syntax::TextRange;
|
||||||
use test_utils::{add_cursor, assert_eq_text, extract_offset, extract_range};
|
use test_utils::{add_cursor, assert_eq_text, extract_offset, extract_range};
|
||||||
|
|
||||||
use crate::{Assist, AssistCtx};
|
use crate::{Assist, AssistCtx};
|
||||||
|
|
||||||
|
pub(crate) fn with_single_file(text: &str) -> (RootDatabase, FileId) {
|
||||||
|
let (mut db, file_id) = RootDatabase::with_single_file(text);
|
||||||
|
// FIXME: ideally, this should be done by the above `RootDatabase::with_single_file`,
|
||||||
|
// but it looks like this might need specialization? :(
|
||||||
|
let local_roots = vec![db.file_source_root(file_id)];
|
||||||
|
db.set_local_roots(Arc::new(local_roots));
|
||||||
|
(db, file_id)
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn check_assist(assist: fn(AssistCtx) -> Option<Assist>, before: &str, after: &str) {
|
pub(crate) fn check_assist(assist: fn(AssistCtx) -> Option<Assist>, before: &str, after: &str) {
|
||||||
let (before_cursor_pos, before) = extract_offset(before);
|
let (before_cursor_pos, before) = extract_offset(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = with_single_file(&before);
|
||||||
let frange =
|
let frange =
|
||||||
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
||||||
let assist =
|
let assist =
|
||||||
@ -205,7 +216,7 @@ mod helpers {
|
|||||||
after: &str,
|
after: &str,
|
||||||
) {
|
) {
|
||||||
let (range, before) = extract_range(before);
|
let (range, before) = extract_range(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = with_single_file(&before);
|
||||||
let frange = FileRange { file_id, range };
|
let frange = FileRange { file_id, range };
|
||||||
let assist =
|
let assist =
|
||||||
AssistCtx::with_ctx(&db, frange, true, assist).expect("code action is not applicable");
|
AssistCtx::with_ctx(&db, frange, true, assist).expect("code action is not applicable");
|
||||||
@ -227,7 +238,7 @@ mod helpers {
|
|||||||
target: &str,
|
target: &str,
|
||||||
) {
|
) {
|
||||||
let (before_cursor_pos, before) = extract_offset(before);
|
let (before_cursor_pos, before) = extract_offset(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = with_single_file(&before);
|
||||||
let frange =
|
let frange =
|
||||||
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
||||||
let assist =
|
let assist =
|
||||||
@ -247,7 +258,7 @@ mod helpers {
|
|||||||
target: &str,
|
target: &str,
|
||||||
) {
|
) {
|
||||||
let (range, before) = extract_range(before);
|
let (range, before) = extract_range(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = with_single_file(&before);
|
||||||
let frange = FileRange { file_id, range };
|
let frange = FileRange { file_id, range };
|
||||||
let assist =
|
let assist =
|
||||||
AssistCtx::with_ctx(&db, frange, true, assist).expect("code action is not applicable");
|
AssistCtx::with_ctx(&db, frange, true, assist).expect("code action is not applicable");
|
||||||
@ -265,7 +276,7 @@ mod helpers {
|
|||||||
before: &str,
|
before: &str,
|
||||||
) {
|
) {
|
||||||
let (before_cursor_pos, before) = extract_offset(before);
|
let (before_cursor_pos, before) = extract_offset(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = with_single_file(&before);
|
||||||
let frange =
|
let frange =
|
||||||
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
||||||
let assist = AssistCtx::with_ctx(&db, frange, true, assist);
|
let assist = AssistCtx::with_ctx(&db, frange, true, assist);
|
||||||
@ -277,7 +288,7 @@ mod helpers {
|
|||||||
before: &str,
|
before: &str,
|
||||||
) {
|
) {
|
||||||
let (range, before) = extract_range(before);
|
let (range, before) = extract_range(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = with_single_file(&before);
|
||||||
let frange = FileRange { file_id, range };
|
let frange = FileRange { file_id, range };
|
||||||
let assist = AssistCtx::with_ctx(&db, frange, true, assist);
|
let assist = AssistCtx::with_ctx(&db, frange, true, assist);
|
||||||
assert!(assist.is_none());
|
assert!(assist.is_none());
|
||||||
@ -286,17 +297,17 @@ mod helpers {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use ra_db::{fixture::WithFixture, FileRange};
|
use ra_db::FileRange;
|
||||||
use ra_syntax::TextRange;
|
use ra_syntax::TextRange;
|
||||||
use test_utils::{extract_offset, extract_range};
|
use test_utils::{extract_offset, extract_range};
|
||||||
|
|
||||||
use ra_ide_db::RootDatabase;
|
use crate::helpers;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn assist_order_field_struct() {
|
fn assist_order_field_struct() {
|
||||||
let before = "struct Foo { <|>bar: u32 }";
|
let before = "struct Foo { <|>bar: u32 }";
|
||||||
let (before_cursor_pos, before) = extract_offset(before);
|
let (before_cursor_pos, before) = extract_offset(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = helpers::with_single_file(&before);
|
||||||
let frange =
|
let frange =
|
||||||
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
||||||
let assists = super::assists(&db, frange);
|
let assists = super::assists(&db, frange);
|
||||||
@ -320,7 +331,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}";
|
}";
|
||||||
let (range, before) = extract_range(before);
|
let (range, before) = extract_range(before);
|
||||||
let (db, file_id) = RootDatabase::with_single_file(&before);
|
let (db, file_id) = helpers::with_single_file(&before);
|
||||||
let frange = FileRange { file_id, range };
|
let frange = FileRange { file_id, range };
|
||||||
let assists = super::assists(&db, frange);
|
let assists = super::assists(&db, frange);
|
||||||
let mut assists = assists.iter();
|
let mut assists = assists.iter();
|
||||||
|
@ -92,7 +92,7 @@ pub fn classify_name(
|
|||||||
ast::FnDef(it) => {
|
ast::FnDef(it) => {
|
||||||
let src = name.with_value(it);
|
let src = name.with_value(it);
|
||||||
let def: hir::Function = sb.to_def(src)?;
|
let def: hir::Function = sb.to_def(src)?;
|
||||||
if parent.parent().and_then(ast::ItemList::cast).is_some() {
|
if parent.parent().and_then(ast::ItemList::cast).map_or(false, |it| it.syntax().parent().and_then(ast::Module::cast).is_none()) {
|
||||||
Some(from_assoc_item(sb.db, def.into()))
|
Some(from_assoc_item(sb.db, def.into()))
|
||||||
} else {
|
} else {
|
||||||
Some(from_module_def(sb.db, def.into(), None))
|
Some(from_module_def(sb.db, def.into(), None))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user