diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-08-23 12:22:36 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-08-24 08:55:23 -0400 |
| commit | 118db4f7667c91b24fcc21353df7c3cd7a5830b3 (patch) | |
| tree | 0f098b492a06712f79782d493797604eec4e844b /src/testing | |
| parent | 39b2e758cacb40ba1a062b8af87af9edf8958375 (diff) | |
Add special case for handling `append` for dynamic arrays
Diffstat (limited to 'src/testing')
| -rw-r--r-- | src/testing/testing.odin | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/testing/testing.odin b/src/testing/testing.odin index e03e8b5..ca3fa1e 100644 --- a/src/testing/testing.odin +++ b/src/testing/testing.odin @@ -261,6 +261,44 @@ expect_completion_docs :: proc( } } +expect_completion_insert_text :: proc(t: ^testing.T, src: ^Source, trigger_character: string, expect_inserts: []string) { + setup(src) + defer teardown(src) + + completion_context := server.CompletionContext { + triggerCharacter = trigger_character, + } + + completion_list, ok := server.get_completion_list(src.document, src.position, completion_context) + + if !ok { + log.error("Failed get_completion_list") + } + + if len(expect_inserts) == 0 && len(completion_list.items) > 0 { + log.errorf("Expected empty completion inserts, but received %v", completion_list.items) + } + + flags := make([]int, len(expect_inserts), context.temp_allocator) + + for expect_insert, i in expect_inserts { + for completion, j in completion_list.items { + if insert_text, ok := completion.insertText.(string); ok { + if expect_insert == insert_text { + flags[i] += 1 + continue + } + } + } + } + + for flag, i in flags { + if flag != 1 { + log.errorf("Expected completion insert %v, but received %v", expect_inserts[i], completion_list.items) + } + } +} + expect_hover :: proc(t: ^testing.T, src: ^Source, expect_hover_string: string) { setup(src) defer teardown(src) |