diff options
Diffstat (limited to 'support/texlab/tests/lsp/text_document/document_link.rs')
-rw-r--r-- | support/texlab/tests/lsp/text_document/document_link.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/support/texlab/tests/lsp/text_document/document_link.rs b/support/texlab/tests/lsp/text_document/document_link.rs new file mode 100644 index 0000000000..6aab6105de --- /dev/null +++ b/support/texlab/tests/lsp/text_document/document_link.rs @@ -0,0 +1,52 @@ +use insta::assert_json_snapshot; +use lsp_types::{ + request::DocumentLinkRequest, ClientCapabilities, DocumentLink, DocumentLinkParams, +}; + +use crate::fixture::TestBed; + +fn find_links(fixture: &str) -> Vec<DocumentLink> { + let test_bed = TestBed::new(fixture).unwrap(); + test_bed.initialize(ClientCapabilities::default()).unwrap(); + + let text_document_position = test_bed.cursor().unwrap(); + let mut links = test_bed + .client() + .send_request::<DocumentLinkRequest>(DocumentLinkParams { + text_document: text_document_position.text_document, + work_done_progress_params: Default::default(), + partial_result_params: Default::default(), + }) + .unwrap() + .unwrap_or_default(); + + for link in &mut links { + link.target = Some(test_bed.redact(link.target.as_ref().unwrap())); + } + + links +} + +#[test] +fn document_include() { + assert_json_snapshot!(find_links( + r#" +%! foo.tex +\input{bar.tex} +| + +%! bar.tex"#, + )) +} + +#[test] +fn document_import() { + assert_json_snapshot!(find_links( + r#" +%! foo.tex +\import{.}{bar/baz} +| + +%! bar/baz.tex"#, + )) +} |