diff options
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/integration/lsp_tests.rs | 114 | ||||
-rw-r--r-- | cli/tests/testdata/lsp/document_symbol_response.json | 12 |
2 files changed, 120 insertions, 6 deletions
diff --git a/cli/tests/integration/lsp_tests.rs b/cli/tests/integration/lsp_tests.rs index c22bb3bdb..8e7de0286 100644 --- a/cli/tests/integration/lsp_tests.rs +++ b/cli/tests/integration/lsp_tests.rs @@ -3776,6 +3776,120 @@ fn lsp_configuration_did_change() { } #[test] +fn lsp_workspace_symbol() { + let mut client = init("initialize_params.json"); + did_open( + &mut client, + json!({ + "textDocument": { + "uri": "file:///a/file.ts", + "languageId": "typescript", + "version": 1, + "text": "export class A {\n fieldA: string;\n fieldB: string;\n}\n", + } + }), + ); + did_open( + &mut client, + json!({ + "textDocument": { + "uri": "file:///a/file_01.ts", + "languageId": "typescript", + "version": 1, + "text": "export class B {\n fieldC: string;\n fieldD: string;\n}\n", + } + }), + ); + let (maybe_res, maybe_err) = client + .write_request( + "workspace/symbol", + json!({ + "query": "field" + }), + ) + .unwrap(); + assert!(maybe_err.is_none()); + assert_eq!( + maybe_res, + Some(json!([ + { + "name": "fieldA", + "kind": 8, + "location": { + "uri": "file:///a/file.ts", + "range": { + "start": { + "line": 1, + "character": 2 + }, + "end": { + "line": 1, + "character": 17 + } + } + }, + "containerName": "A" + }, + { + "name": "fieldB", + "kind": 8, + "location": { + "uri": "file:///a/file.ts", + "range": { + "start": { + "line": 2, + "character": 2 + }, + "end": { + "line": 2, + "character": 17 + } + } + }, + "containerName": "A" + }, + { + "name": "fieldC", + "kind": 8, + "location": { + "uri": "file:///a/file_01.ts", + "range": { + "start": { + "line": 1, + "character": 2 + }, + "end": { + "line": 1, + "character": 17 + } + } + }, + "containerName": "B" + }, + { + "name": "fieldD", + "kind": 8, + "location": { + "uri": "file:///a/file_01.ts", + "range": { + "start": { + "line": 2, + "character": 2 + }, + "end": { + "line": 2, + "character": 17 + } + } + }, + "containerName": "B" + } + ])) + ); + shutdown(&mut client); +} + +#[test] fn lsp_code_actions_ignore_lint() { let mut client = init("initialize_params.json"); did_open( diff --git a/cli/tests/testdata/lsp/document_symbol_response.json b/cli/tests/testdata/lsp/document_symbol_response.json index 54c89cc09..90dd76411 100644 --- a/cli/tests/testdata/lsp/document_symbol_response.json +++ b/cli/tests/testdata/lsp/document_symbol_response.json @@ -148,7 +148,7 @@ }, { "name": "staticBar", - "kind": 7, + "kind": 8, "range": { "start": { "line": 11, @@ -171,8 +171,8 @@ } }, { - "name": "value", - "kind": 7, + "name": "(get) value", + "kind": 8, "range": { "start": { "line": 9, @@ -195,8 +195,8 @@ } }, { - "name": "value", - "kind": 7, + "name": "(set) value", + "kind": 8, "range": { "start": { "line": 10, @@ -220,7 +220,7 @@ }, { "name": "x", - "kind": 7, + "kind": 8, "range": { "start": { "line": 5, |