Skip to content

Commit ca9e0f5

Browse files
committed
Fixup tests
1 parent 27c7ef6 commit ca9e0f5

File tree

9 files changed

+71
-43
lines changed

9 files changed

+71
-43
lines changed

crates/ra_assists/src/doc_tests.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ fn check(assist_id: &str, before: &str, after: &str) {
3030
)
3131
});
3232

33-
let actual = assist.action.edit.apply(&before);
33+
let actual = {
34+
let mut actual = before.clone();
35+
assist.action.edit.apply(&mut actual);
36+
actual
37+
};
3438
assert_eq_text!(after, &actual);
3539
}

crates/ra_assists/src/lib.rs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -199,12 +199,12 @@ mod handlers {
199199
mod helpers {
200200
use std::sync::Arc;
201201

202+
use hir::Semantics;
202203
use ra_db::{fixture::WithFixture, FileId, FileRange, SourceDatabaseExt};
203204
use ra_ide_db::{symbol_index::SymbolsDatabase, RootDatabase};
204205
use test_utils::{add_cursor, assert_eq_text, extract_range_or_offset, RangeOrOffset};
205206

206-
use crate::{AssistCtx, AssistFile, AssistHandler};
207-
use hir::Semantics;
207+
use crate::{handlers::Handler, AssistCtx, AssistFile};
208208

209209
pub(crate) fn with_single_file(text: &str) -> (RootDatabase, FileId) {
210210
let (mut db, file_id) = RootDatabase::with_single_file(text);
@@ -214,22 +214,18 @@ mod helpers {
214214
(db, file_id)
215215
}
216216

217-
pub(crate) fn check_assist(
218-
assist: AssistHandler,
219-
ra_fixture_before: &str,
220-
ra_fixture_after: &str,
221-
) {
217+
pub(crate) fn check_assist(assist: Handler, ra_fixture_before: &str, ra_fixture_after: &str) {
222218
check(assist, ra_fixture_before, ExpectedResult::After(ra_fixture_after));
223219
}
224220

225221
// FIXME: instead of having a separate function here, maybe use
226222
// `extract_ranges` and mark the target as `<target> </target>` in the
227223
// fixuture?
228-
pub(crate) fn check_assist_target(assist: AssistHandler, ra_fixture: &str, target: &str) {
224+
pub(crate) fn check_assist_target(assist: Handler, ra_fixture: &str, target: &str) {
229225
check(assist, ra_fixture, ExpectedResult::Target(target));
230226
}
231227

232-
pub(crate) fn check_assist_not_applicable(assist: AssistHandler, ra_fixture: &str) {
228+
pub(crate) fn check_assist_not_applicable(assist: Handler, ra_fixture: &str) {
233229
check(assist, ra_fixture, ExpectedResult::NotApplicable);
234230
}
235231

@@ -239,7 +235,7 @@ mod helpers {
239235
Target(&'a str),
240236
}
241237

242-
fn check(assist: AssistHandler, before: &str, expected: ExpectedResult) {
238+
fn check(assist: Handler, before: &str, expected: ExpectedResult) {
243239
let (text_without_caret, file_with_caret_id, range_or_offset, db) =
244240
if before.contains("//-") {
245241
let (mut db, position) = RootDatabase::with_position(before);
@@ -265,13 +261,13 @@ mod helpers {
265261
(Some(assist), ExpectedResult::After(after)) => {
266262
let action = assist.0[0].action.clone().unwrap();
267263

268-
let assisted_file_text = if let AssistFile::TargetFile(file_id) = action.file {
264+
let mut actual = if let AssistFile::TargetFile(file_id) = action.file {
269265
db.file_text(file_id).as_ref().to_owned()
270266
} else {
271267
text_without_caret
272268
};
269+
action.edit.apply(&mut actual);
273270

274-
let mut actual = action.edit.apply(&assisted_file_text);
275271
match action.cursor_position {
276272
None => {
277273
if let RangeOrOffset::Offset(before_cursor_pos) = range_or_offset {

crates/ra_ide/src/diagnostics.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,11 @@ mod tests {
241241
diagnostics.pop().unwrap_or_else(|| panic!("no diagnostics for:\n{}\n", before));
242242
let mut fix = diagnostic.fix.unwrap();
243243
let edit = fix.source_file_edits.pop().unwrap().edit;
244-
let actual = edit.apply(&before);
244+
let actual = {
245+
let mut actual = before.to_string();
246+
edit.apply(&mut actual);
247+
actual
248+
};
245249
assert_eq_text!(after, &actual);
246250
}
247251

@@ -256,7 +260,11 @@ mod tests {
256260
let mut fix = diagnostic.fix.unwrap();
257261
let edit = fix.source_file_edits.pop().unwrap().edit;
258262
let target_file_contents = analysis.file_text(file_position.file_id).unwrap();
259-
let actual = edit.apply(&target_file_contents);
263+
let actual = {
264+
let mut actual = target_file_contents.to_string();
265+
edit.apply(&mut actual);
266+
actual
267+
};
260268

261269
// Strip indent and empty lines from `after`, to match the behaviour of
262270
// `parse_fixture` called from `analysis_and_position`.
@@ -288,7 +296,11 @@ mod tests {
288296
let diagnostic = analysis.diagnostics(file_id).unwrap().pop().unwrap();
289297
let mut fix = diagnostic.fix.unwrap();
290298
let edit = fix.source_file_edits.pop().unwrap().edit;
291-
let actual = edit.apply(&before);
299+
let actual = {
300+
let mut actual = before.to_string();
301+
edit.apply(&mut actual);
302+
actual
303+
};
292304
assert_eq_text!(after, &actual);
293305
}
294306

@@ -662,10 +674,10 @@ mod tests {
662674
1,
663675
),
664676
edit: TextEdit {
665-
atoms: [
666-
AtomTextEdit {
667-
delete: 3..9,
677+
indels: [
678+
Indel {
668679
insert: "{a:42, b: ()}",
680+
delete: 3..9,
669681
},
670682
],
671683
},

crates/ra_ide/src/join_lines.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,11 @@ fn foo() {
569569
let (sel, before) = extract_range(before);
570570
let parse = SourceFile::parse(&before);
571571
let result = join_lines(&parse.tree(), sel);
572-
let actual = result.apply(&before);
572+
let actual = {
573+
let mut actual = before.to_string();
574+
result.apply(&mut actual);
575+
actual
576+
};
573577
assert_eq_text!(after, &actual);
574578
}
575579

crates/ra_ide/src/references/rename.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -537,10 +537,10 @@ mod tests {
537537
2,
538538
),
539539
edit: TextEdit {
540-
atoms: [
541-
AtomTextEdit {
542-
delete: 4..7,
540+
indels: [
541+
Indel {
543542
insert: "foo2",
543+
delete: 4..7,
544544
},
545545
],
546546
},
@@ -589,10 +589,10 @@ mod tests {
589589
1,
590590
),
591591
edit: TextEdit {
592-
atoms: [
593-
AtomTextEdit {
594-
delete: 4..7,
592+
indels: [
593+
Indel {
595594
insert: "foo2",
595+
delete: 4..7,
596596
},
597597
],
598598
},
@@ -672,10 +672,10 @@ mod tests {
672672
2,
673673
),
674674
edit: TextEdit {
675-
atoms: [
676-
AtomTextEdit {
677-
delete: 8..11,
675+
indels: [
676+
Indel {
678677
insert: "foo2",
678+
delete: 8..11,
679679
},
680680
],
681681
},
@@ -685,10 +685,10 @@ mod tests {
685685
1,
686686
),
687687
edit: TextEdit {
688-
atoms: [
689-
AtomTextEdit {
690-
delete: 27..30,
688+
indels: [
689+
Indel {
691690
insert: "foo2",
691+
delete: 27..30,
692692
},
693693
],
694694
},
@@ -720,13 +720,13 @@ mod tests {
720720
if let Some(change) = source_change {
721721
for edit in change.info.source_file_edits {
722722
file_id = Some(edit.file_id);
723-
for atom in edit.edit.as_atoms() {
724-
text_edit_builder.replace(atom.delete, atom.insert.clone());
723+
for indel in edit.edit.as_indels() {
724+
text_edit_builder.replace(indel.delete, indel.insert.clone());
725725
}
726726
}
727727
}
728-
let result =
729-
text_edit_builder.finish().apply(&*analysis.file_text(file_id.unwrap()).unwrap());
728+
let mut result = analysis.file_text(file_id.unwrap()).unwrap().to_string();
729+
text_edit_builder.finish().apply(&mut result);
730730
assert_eq_text!(expected, &*result);
731731
}
732732
}

crates/ra_ide/src/ssr.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,15 +511,19 @@ mod tests {
511511
);
512512

513513
let edit = replace(&matches, &query.template);
514-
assert_eq!(edit.apply(input), "fn main() { bar(1+2); }");
514+
let mut after = input.to_string();
515+
edit.apply(&mut after);
516+
assert_eq!(after, "fn main() { bar(1+2); }");
515517
}
516518

517519
fn assert_ssr_transform(query: &str, input: &str, result: &str) {
518520
let query: SsrQuery = query.parse().unwrap();
519521
let code = SourceFile::parse(input).tree();
520522
let matches = find(&query.pattern, code.syntax());
521523
let edit = replace(&matches, &query.template);
522-
assert_eq!(edit.apply(input), result);
524+
let mut after = input.to_string();
525+
edit.apply(&mut after);
526+
assert_eq!(after, result);
523527
}
524528

525529
#[test]

crates/ra_ide/src/test_utils.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ pub fn check_action<F: Fn(&SourceFile, TextSize) -> Option<TextEdit>>(
1313
let (before_cursor_pos, before) = extract_offset(before);
1414
let file = SourceFile::parse(&before).ok().unwrap();
1515
let result = f(&file, before_cursor_pos).expect("code action is not applicable");
16-
let actual = result.apply(&before);
16+
let actual = {
17+
let mut actual = before.to_string();
18+
result.apply(&mut actual);
19+
actual
20+
};
1721
let actual_cursor_pos =
1822
result.apply_to_offset(before_cursor_pos).expect("cursor position is affected by the edit");
1923
let actual = add_cursor(&actual, actual_cursor_pos);

crates/ra_ide/src/typing.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,13 @@ mod tests {
142142
fn do_type_char(char_typed: char, before: &str) -> Option<(String, SingleFileChange)> {
143143
let (offset, before) = extract_offset(before);
144144
let edit = TextEdit::insert(offset, char_typed.to_string());
145-
let before = edit.apply(&before);
145+
let mut before = before.to_string();
146+
edit.apply(&mut before);
146147
let parse = SourceFile::parse(&before);
147-
on_char_typed_inner(&parse.tree(), offset, char_typed)
148-
.map(|it| (it.edit.apply(&before), it))
148+
on_char_typed_inner(&parse.tree(), offset, char_typed).map(|it| {
149+
it.edit.apply(&mut before);
150+
(before.to_string(), it)
151+
})
149152
}
150153

151154
fn type_char(char_typed: char, before: &str, after: &str) {

crates/ra_ide/src/typing/on_enter.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ mod tests {
9696
let result = analysis.on_enter(FilePosition { offset, file_id }).unwrap()?;
9797

9898
assert_eq!(result.source_file_edits.len(), 1);
99-
let actual = result.source_file_edits[0].edit.apply(&before);
99+
let mut actual = before.to_string();
100+
result.source_file_edits[0].edit.apply(&mut actual);
100101
let actual = add_cursor(&actual, result.cursor_position.unwrap().offset);
101102
Some(actual)
102103
}

0 commit comments

Comments
 (0)