From bc0f79f74ad0ab4f663b94772ccbfabed1de625e Mon Sep 17 00:00:00 2001 From: gfreezy Date: Tue, 15 Jan 2019 00:09:03 +0800 Subject: rename mod --- crates/ra_ide_api/tests/test/main.rs | 41 ++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 9 deletions(-) (limited to 'crates/ra_ide_api/tests') diff --git a/crates/ra_ide_api/tests/test/main.rs b/crates/ra_ide_api/tests/test/main.rs index 2b863aedf..4aa13b0e7 100644 --- a/crates/ra_ide_api/tests/test/main.rs +++ b/crates/ra_ide_api/tests/test/main.rs @@ -1,11 +1,13 @@ +use ra_ide_api::{ + AnalysisChange, + CrateGraph, FileId, mock_analysis::{MockAnalysis, single_file, single_file_with_position}, Query, +}; +use ra_ide_api::mock_analysis::analysis_and_position; use ra_syntax::TextRange; use test_utils::assert_eq_text; use insta::assert_debug_snapshot_matches; -use ra_ide_api::{ - mock_analysis::{single_file, single_file_with_position, MockAnalysis}, - AnalysisChange, CrateGraph, FileId, Query -}; +mod runnables; #[test] fn test_unresolved_module_diagnostic() { @@ -91,6 +93,7 @@ fn test_find_all_refs_for_fn_param() { let refs = get_all_refs(code); assert_eq!(refs.len(), 2); } + #[test] fn test_rename_for_local() { test_rename( @@ -167,15 +170,35 @@ fn test_rename_for_mut_param() { ); } +#[test] +fn test_rename_mod() { + let (analysis, position) = analysis_and_position( + " + //- /bar.rs + mod fo<|>o; + //- /bar/foo.rs + // emtpy + ", + ); + let new_name = "foo2"; + let source_change = analysis.rename(position, new_name).unwrap(); + assert_eq_dbg( + r#"Some(SourceChange { label: "rename", source_file_edits: [SourceFileEdit { file_id: FileId(1), edit: TextEdit { atoms: [AtomTextEdit { delete: [4; 7), insert: "foo2" }] } }], file_system_edits: [MoveFile { src: FileId(2), dst_source_root: SourceRootId(0), dst_path: "bar/foo2.rs" }], cursor_position: None })"#, + &source_change, + ); +} + fn test_rename(text: &str, new_name: &str, expected: &str) { let (analysis, position) = single_file_with_position(text); - let edits = analysis.rename(position, new_name).unwrap(); + let source_change = analysis.rename(position, new_name).unwrap(); let mut text_edit_bulder = ra_text_edit::TextEditBuilder::default(); let mut file_id: Option = None; - for edit in edits { - file_id = Some(edit.file_id); - for atom in edit.edit.as_atoms() { - text_edit_bulder.replace(atom.delete, atom.insert.clone()); + if let Some(change) = source_change { + for edit in change.source_file_edits { + file_id = Some(edit.file_id); + for atom in edit.edit.as_atoms() { + text_edit_bulder.replace(atom.delete, atom.insert.clone()); + } } } let result = text_edit_bulder -- cgit v1.2.3