From 0dd35ff2b2ceffdb926953fdacc7d30e1968047d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 25 Oct 2019 14:16:46 +0300 Subject: auto-generate assists docs and tests --- crates/ra_assists/src/doc_tests.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 crates/ra_assists/src/doc_tests.rs (limited to 'crates/ra_assists/src/doc_tests.rs') diff --git a/crates/ra_assists/src/doc_tests.rs b/crates/ra_assists/src/doc_tests.rs new file mode 100644 index 000000000..88e901517 --- /dev/null +++ b/crates/ra_assists/src/doc_tests.rs @@ -0,0 +1,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); +} -- cgit v1.2.3