aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/doc_tests.rs
blob: 88e901517c27feb597f916b97b15f5a0e8b46ad0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//! 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);
}