aboutsummaryrefslogtreecommitdiff
path: root/src/testing
diff options
context:
space:
mode:
authorBradley Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-26 07:56:45 -0400
committerGitHub <noreply@github.com>2025-08-26 07:56:45 -0400
commit2d2284560741f8d6b834ffd0b6c5a34d1ad3b77c (patch)
tree44ff5e0215aff1b24d7b1a27e03fafc448b02c36 /src/testing
parent4703f8a761bfe70946a3a84db4490a5e66ab9e4c (diff)
parent656fbf87d5ae541e409dcbd0906262e3d8f0d881 (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.odin53
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),