diff options
Diffstat (limited to 'support/texlab/tests/test_hover_latex_label.rs')
-rw-r--r-- | support/texlab/tests/test_hover_latex_label.rs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/support/texlab/tests/test_hover_latex_label.rs b/support/texlab/tests/test_hover_latex_label.rs new file mode 100644 index 0000000000..94a96ad533 --- /dev/null +++ b/support/texlab/tests/test_hover_latex_label.rs @@ -0,0 +1,59 @@ +pub mod support; + +use lsp_types::*; +use std::sync::Arc; +use support::capabilities::CLIENT_FULL_CAPABILITIES; +use support::*; +use tokio::fs; + +const SCENARIO: &str = "hover/latex/label"; + +#[tokio::test] +async fn reload_aux() { + let scenario = Scenario::new(SCENARIO, Arc::new(Box::new(tex::Unknown))); + scenario.initialize(&CLIENT_FULL_CAPABILITIES).await; + scenario.open("section.tex").await; + let position = Position::new(3, 10); + let identifier = TextDocumentIdentifier::new(scenario.uri("section.tex").into()); + let params = TextDocumentPositionParams::new(identifier, position); + let contents = scenario + .server + .execute_async(|svr| svr.hover(params.clone())) + .await + .unwrap() + .unwrap() + .contents; + + assert_eq!( + contents, + HoverContents::Markup(MarkupContent { + kind: MarkupKind::PlainText, + value: "Section (Foo)".into() + }) + ); + + let aux_path = scenario + .uri("section.tex") + .to_file_path() + .unwrap() + .with_extension("aux"); + fs::write(aux_path, "\\newlabel{sec:foo}{{1}{1}}") + .await + .unwrap(); + + let contents = scenario + .server + .execute_async(|svr| svr.hover(params)) + .await + .unwrap() + .unwrap() + .contents; + + assert_eq!( + contents, + HoverContents::Markup(MarkupContent { + kind: MarkupKind::PlainText, + value: "Section 1 (Foo)".into() + }) + ); +} |