diff options
| author | Bradley Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-08-26 07:56:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-26 07:56:45 -0400 |
| commit | 2d2284560741f8d6b834ffd0b6c5a34d1ad3b77c (patch) | |
| tree | 44ff5e0215aff1b24d7b1a27e03fafc448b02c36 /src/testing | |
| parent | 4703f8a761bfe70946a3a84db4490a5e66ab9e4c (diff) | |
| parent | 656fbf87d5ae541e409dcbd0906262e3d8f0d881 (diff) | |
Merge pull request #906 from BradLewis/feat/handle-pointers-on-proc-args
Handle pointers when passing variables to procedure arguments
Diffstat (limited to 'src/testing')
| -rw-r--r-- | src/testing/testing.odin | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/src/testing/testing.odin b/src/testing/testing.odin index e03e8b5..1b40c6b 100644 --- a/src/testing/testing.odin +++ b/src/testing/testing.odin @@ -174,7 +174,7 @@ expect_completion_labels :: proc(t: ^testing.T, src: ^Source, trigger_character: triggerCharacter = trigger_character, } - completion_list, ok := server.get_completion_list(src.document, src.position, completion_context) + completion_list, ok := server.get_completion_list(src.document, src.position, completion_context, &src.config) if !ok { log.error("Failed get_completion_list") @@ -202,7 +202,8 @@ expect_completion_labels :: proc(t: ^testing.T, src: ^Source, trigger_character: } expect_completion_docs :: proc( - t: ^testing.T, src: ^Source, + t: ^testing.T, + src: ^Source, trigger_character: string, expect_details: []string, expect_excluded: []string = nil, @@ -226,7 +227,7 @@ expect_completion_docs :: proc( triggerCharacter = trigger_character, } - completion_list, ok := server.get_completion_list(src.document, src.position, completion_context) + completion_list, ok := server.get_completion_list(src.document, src.position, completion_context, &src.config) if !ok { log.error("Failed get_completion_list") @@ -261,6 +262,49 @@ 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, &src.config) + + 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) @@ -474,7 +518,8 @@ expect_inlay_hints :: proc(t: ^testing.T, src: ^Source, expected_hints: []server return } - testing.expectf(t, + testing.expectf( + t, len(expected_hints) == len(hints), "\nExpected %d inlay hints, but received %d", len(expected_hints), |