mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-21 01:24:13 +00:00
24 lines
814 B
Rust
24 lines
814 B
Rust
|
//! Each assist definition has a special comment, which specifies docs and
|
||
|
//! example.
|
||
|
//!
|
||
|
//! We collect all the example and write the as tests in this module.
|
||
|
|
||
|
mod generated;
|
||
|
|
||
|
use hir::mock::MockDatabase;
|
||
|
use ra_db::FileRange;
|
||
|
use ra_syntax::TextRange;
|
||
|
use test_utils::{assert_eq_text, extract_offset};
|
||
|
|
||
|
fn check(assist_id: &str, before: &str, after: &str) {
|
||
|
let (before_cursor_pos, before) = extract_offset(before);
|
||
|
let (db, _source_root, file_id) = MockDatabase::with_single_file(&before);
|
||
|
let frange = FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) };
|
||
|
|
||
|
let (_assist_id, action) =
|
||
|
crate::assists(&db, frange).into_iter().find(|(id, _)| id.id.0 == assist_id).unwrap();
|
||
|
|
||
|
let actual = action.edit.apply(&before);
|
||
|
assert_eq_text!(after, &actual);
|
||
|
}
|