aboutsummaryrefslogtreecommitdiff
path: root/src/testing/testing.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-23 12:22:36 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-24 08:55:23 -0400
commit118db4f7667c91b24fcc21353df7c3cd7a5830b3 (patch)
tree0f098b492a06712f79782d493797604eec4e844b /src/testing/testing.odin
parent39b2e758cacb40ba1a062b8af87af9edf8958375 (diff)
Add special case for handling `append` for dynamic arrays
Diffstat (limited to 'src/testing/testing.odin')
-rw-r--r--src/testing/testing.odin38
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)