summaryrefslogtreecommitdiff
path: root/support/texlab/tests/integration/lsp/text_document/did_change_configuration.rs
blob: c45dca094b2a307897238db848662903d45071cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use anyhow::Result;
use insta::assert_snapshot;
use lsp_types::{
    notification::{DidChangeConfiguration, Notification, ShowMessage},
    ClientCapabilities, DidChangeConfigurationParams, ShowMessageParams,
};

use crate::lsp::client::Client;

#[test]
fn invalid_configuration() -> Result<()> {
    let mut client = Client::spawn()?;
    client.initialize(ClientCapabilities::default(), None)?;

    client.notify::<DidChangeConfiguration>(DidChangeConfigurationParams {
        settings: serde_json::json!({
            "diagnostics": {
                "allowedPatterns": ["\\"]
            }
        }),
    })?;

    let result = client.shutdown()?;
    let message = result
        .incoming
        .notifications
        .into_iter()
        .filter_map(|notification| {
            notification
                .extract::<ShowMessageParams>(ShowMessage::METHOD)
                .ok()
        })
        .find(|params| params.message.contains("configuration"))
        .unwrap()
        .message;

    assert_snapshot!(message);
    Ok(())
}