test: add rename testing (#448)

This commit is contained in:
Myriad-Dreamin 2024-07-22 14:29:53 +08:00 committed by GitHub
parent ede592796d
commit 1bbf800643
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 196 additions and 60 deletions

View file

@ -31,7 +31,7 @@ impl StatefulRequest for RenameRequest {
validate_renaming_definition(&lnk)?;
let def_use = ctx.def_use(source.clone())?;
let references = find_references(ctx, def_use, deref_target, ctx.position_encoding())?;
let references = find_references(ctx, def_use, deref_target)?;
let mut editions = HashMap::new();
@ -63,6 +63,8 @@ impl StatefulRequest for RenameRequest {
});
}
log::info!("rename editions: {editions:?}");
// todo: name conflict analysis
Some(WorkspaceEdit {
changes: Some(editions),
@ -70,3 +72,37 @@ impl StatefulRequest for RenameRequest {
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::tests::*;
#[test]
fn test() {
snapshot_testing("rename", &|world, path| {
let source = world.source_by_path(&path).unwrap();
let request = RenameRequest {
path: path.clone(),
position: find_test_position(&source),
new_name: "new_name".to_string(),
};
let mut result = request.request(world, None);
// sort the edits to make the snapshot stable
if let Some(r) = result.as_mut().and_then(|r| r.changes.as_mut()) {
for edits in r.values_mut() {
edits.sort_by(|a, b| {
a.range
.start
.cmp(&b.range.start)
.then(a.range.end.cmp(&b.range.end))
});
}
};
assert_snapshot!(JsonRepr::new_redacted(result, &REDACT_LOC));
});
}
}