diff options
author | jdrouhard <john@drouhard.dev> | 2023-04-22 17:08:28 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-23 00:08:28 +0200 |
commit | 540d6c595bc8e1b298dce51211b5d39e25e17d03 (patch) | |
tree | 64336eb2f6035881879d23c971fc63a7617b5914 | |
parent | eee97300ed0f528606e561ffaf43b17faefed612 (diff) | |
download | rneovim-540d6c595bc8e1b298dce51211b5d39e25e17d03.tar.gz rneovim-540d6c595bc8e1b298dce51211b5d39e25e17d03.tar.bz2 rneovim-540d6c595bc8e1b298dce51211b5d39e25e17d03.zip |
test(lsp): fix unstable tests for semantic tokens
Add screen:expect() calls after insert() to make sure the screen has
been drawn before we assert the state of the semantic tokens table
-rw-r--r-- | test/functional/plugin/lsp/semantic_tokens_spec.lua | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/test/functional/plugin/lsp/semantic_tokens_spec.lua b/test/functional/plugin/lsp/semantic_tokens_spec.lua index ec4d20974d..d1ffb72ef5 100644 --- a/test/functional/plugin/lsp/semantic_tokens_spec.lua +++ b/test/functional/plugin/lsp/semantic_tokens_spec.lua @@ -629,6 +629,26 @@ describe('semantic token highlighting', function() marked = true, }, }, + expected_screen = function() + screen:expect{grid=[[ + char* {7:foo} = "\n"^; | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + | + ]]} + end, }, { it = 'clangd-15 on C++', @@ -741,6 +761,26 @@ int main() marked = true, }, }, + expected_screen = function() + screen:expect{grid=[[ + #include <iostream> | + int {8:main}() | + { | + #ifdef {5:__cplusplus} | + const int {7:x} = 1; | + {4:std}::{2:cout} << {2:x} << {4:std}::{3:endl}; | + {6: #else} | + {6: comment} | + {6: #endif} | + ^} | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + | + ]]} + end, }, { it = 'sumneko_lua', @@ -782,6 +822,26 @@ b = "as"]], marked = true, }, }, + expected_screen = function() + screen:expect{grid=[[ + {6:-- comment} | + local {7:a} = 1 | + {2:b} = "as^" | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + | + ]]} + end, }, { it = 'rust-analyzer', @@ -892,6 +952,26 @@ b = "as"]], marked = true, }, }, + expected_screen = function() + screen:expect{grid=[[ + pub fn {8:main}() { | + break rust; | + //{6:/ what?} | + } | + ^ | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + | + ]]} + end, }, }) do it(test.it, function() @@ -918,6 +998,8 @@ b = "as"]], insert(test.text) + test.expected_screen() + local highlights = exec_lua([[ local semantic_tokens = vim.lsp.semantic_tokens return semantic_tokens.__STHighlighter.active[bufnr].client_state[client_id].current_result.highlights |