Skip to content

Commit e58317a

Browse files
committed
Test exact edits returned by formatting handler
1 parent 6538a0c commit e58317a

File tree

1 file changed

+53
-3
lines changed

1 file changed

+53
-3
lines changed

src/cli/lsp.rs

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ mod tests {
348348
assert!(client.receiver.is_empty());
349349
}
350350

351-
fn with_edits(text: &str, mut edits: Vec<TextEdit>) -> String {
351+
fn apply_text_edits_to(text: &str, mut edits: Vec<TextEdit>) -> String {
352352
edits.sort_by(|a, b| match a.range.start.line.cmp(&b.range.start.line) {
353353
Ordering::Equal => a
354354
.range
@@ -424,7 +424,28 @@ mod tests {
424424
expect_server_initialized(&client.receiver, 1);
425425

426426
let edits: Vec<TextEdit> = expect_response(&client.receiver, 2);
427-
let formatted = with_edits(contents, edits);
427+
assert_eq!(
428+
edits,
429+
[
430+
TextEdit {
431+
range: Range::new(Position::new(0, 6), Position::new(0, 7)),
432+
new_text: "".to_string()
433+
},
434+
TextEdit {
435+
range: Range::new(Position::new(0, 8), Position::new(0, 9)),
436+
new_text: "".to_string()
437+
},
438+
TextEdit {
439+
range: Range::new(Position::new(0, 12), Position::new(0, 13)),
440+
new_text: "".to_string()
441+
},
442+
TextEdit {
443+
range: Range::new(Position::new(0, 14), Position::new(0, 14)),
444+
new_text: "\n".to_string()
445+
},
446+
]
447+
);
448+
let formatted = apply_text_edits_to(contents, edits);
428449
assert_eq!(formatted, "local x = 1\n");
429450

430451
expect_server_shutdown(&client.receiver, 3);
@@ -479,7 +500,36 @@ mod tests {
479500
expect_server_initialized(&client.receiver, 1);
480501

481502
let edits: Vec<TextEdit> = expect_response(&client.receiver, 2);
482-
let formatted = with_edits(contents, edits);
503+
assert_eq!(
504+
edits,
505+
[
506+
TextEdit {
507+
range: Range::new(Position::new(1, 6), Position::new(1, 9)),
508+
new_text: "".to_string()
509+
},
510+
TextEdit {
511+
range: Range::new(Position::new(1, 10), Position::new(1, 11)),
512+
new_text: "".to_string()
513+
},
514+
TextEdit {
515+
range: Range::new(Position::new(1, 12), Position::new(1, 13)),
516+
new_text: "".to_string()
517+
},
518+
TextEdit {
519+
range: Range::new(Position::new(1, 14), Position::new(1, 15)),
520+
new_text: "".to_string()
521+
},
522+
TextEdit {
523+
range: Range::new(Position::new(1, 16), Position::new(1, 17)),
524+
new_text: "".to_string()
525+
},
526+
TextEdit {
527+
range: Range::new(Position::new(1, 18), Position::new(1, 18)),
528+
new_text: "\n".to_string()
529+
},
530+
]
531+
);
532+
let formatted = apply_text_edits_to(contents, edits);
483533
assert_eq!(formatted, "local x = 1\nlocal y = 2\n");
484534

485535
expect_server_shutdown(&client.receiver, 3);

0 commit comments

Comments
 (0)