Skip to content

Commit f5f2a6e

Browse files
committed
reuse call-error helper in JSON and regex runtime tests
1 parent f7d3500 commit f5f2a6e

1 file changed

Lines changed: 9 additions & 42 deletions

File tree

vibes/runtime_test.go

Lines changed: 9 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2174,22 +2174,10 @@ func TestJSONAndRegexMalformedInputs(t *testing.T) {
21742174
end
21752175
`)
21762176

2177-
_, err := script.Call(context.Background(), "bad_json_trailing", nil, CallOptions{})
2178-
if err == nil || !strings.Contains(err.Error(), "JSON.parse invalid JSON: trailing data") {
2179-
t.Fatalf("expected trailing JSON error, got %v", err)
2180-
}
2181-
_, err = script.Call(context.Background(), "bad_json_syntax", nil, CallOptions{})
2182-
if err == nil || !strings.Contains(err.Error(), "JSON.parse invalid JSON") {
2183-
t.Fatalf("expected malformed JSON syntax error, got %v", err)
2184-
}
2185-
_, err = script.Call(context.Background(), "bad_regex_replace", nil, CallOptions{})
2186-
if err == nil || !strings.Contains(err.Error(), "Regex.replace invalid regex") {
2187-
t.Fatalf("expected regex replace error, got %v", err)
2188-
}
2189-
_, err = script.Call(context.Background(), "bad_regex_replace_all", nil, CallOptions{})
2190-
if err == nil || !strings.Contains(err.Error(), "Regex.replace_all invalid regex") {
2191-
t.Fatalf("expected regex replace_all error, got %v", err)
2192-
}
2177+
requireCallErrorContains(t, script, "bad_json_trailing", nil, CallOptions{}, "JSON.parse invalid JSON: trailing data")
2178+
requireCallErrorContains(t, script, "bad_json_syntax", nil, CallOptions{}, "JSON.parse invalid JSON")
2179+
requireCallErrorContains(t, script, "bad_regex_replace", nil, CallOptions{}, "Regex.replace invalid regex")
2180+
requireCallErrorContains(t, script, "bad_regex_replace_all", nil, CallOptions{}, "Regex.replace_all invalid regex")
21932181
}
21942182

21952183
func TestJSONAndRegexSizeGuards(t *testing.T) {
@@ -2212,42 +2200,21 @@ func TestJSONAndRegexSizeGuards(t *testing.T) {
22122200
`)
22132201

22142202
largeJSON := `{"data":"` + strings.Repeat("x", maxJSONPayloadBytes) + `"}`
2215-
var err error
2216-
_, err = script.Call(context.Background(), "parse_raw", []Value{NewString(largeJSON)}, CallOptions{})
2217-
if err == nil || !strings.Contains(err.Error(), "JSON.parse input exceeds limit") {
2218-
t.Fatalf("expected JSON.parse size guard error, got %v", err)
2219-
}
2203+
requireCallErrorContains(t, script, "parse_raw", []Value{NewString(largeJSON)}, CallOptions{}, "JSON.parse input exceeds limit")
22202204

22212205
largeValue := NewHash(map[string]Value{
22222206
"data": NewString(strings.Repeat("x", maxJSONPayloadBytes)),
22232207
})
2224-
_, err = script.Call(context.Background(), "stringify_value", []Value{largeValue}, CallOptions{})
2225-
if err == nil || !strings.Contains(err.Error(), "JSON.stringify output exceeds limit") {
2226-
t.Fatalf("expected JSON.stringify size guard error, got %v", err)
2227-
}
2208+
requireCallErrorContains(t, script, "stringify_value", []Value{largeValue}, CallOptions{}, "JSON.stringify output exceeds limit")
22282209

22292210
largePattern := strings.Repeat("a", maxRegexPatternSize+1)
2230-
_, err = script.Call(context.Background(), "regex_match_guard", []Value{NewString(largePattern), NewString("aaa")}, CallOptions{})
2231-
if err == nil || !strings.Contains(err.Error(), "Regex.match pattern exceeds limit") {
2232-
t.Fatalf("expected Regex.match pattern guard error, got %v", err)
2233-
}
2211+
requireCallErrorContains(t, script, "regex_match_guard", []Value{NewString(largePattern), NewString("aaa")}, CallOptions{}, "Regex.match pattern exceeds limit")
22342212

22352213
largeText := strings.Repeat("a", maxRegexInputBytes+1)
2236-
_, err = script.Call(context.Background(), "regex_match_guard", []Value{NewString("a+"), NewString(largeText)}, CallOptions{})
2237-
if err == nil || !strings.Contains(err.Error(), "Regex.match text exceeds limit") {
2238-
t.Fatalf("expected Regex.match text guard error, got %v", err)
2239-
}
2214+
requireCallErrorContains(t, script, "regex_match_guard", []Value{NewString("a+"), NewString(largeText)}, CallOptions{}, "Regex.match text exceeds limit")
22402215

22412216
hugeReplacement := strings.Repeat("x", maxRegexInputBytes/2)
2242-
_, err = script.Call(
2243-
context.Background(),
2244-
"regex_replace_all_guard",
2245-
[]Value{NewString("abc"), NewString(""), NewString(hugeReplacement)},
2246-
CallOptions{},
2247-
)
2248-
if err == nil || !strings.Contains(err.Error(), "Regex.replace_all output exceeds limit") {
2249-
t.Fatalf("expected Regex.replace_all output guard error, got %v", err)
2250-
}
2217+
requireCallErrorContains(t, script, "regex_replace_all_guard", []Value{NewString("abc"), NewString(""), NewString(hugeReplacement)}, CallOptions{}, "Regex.replace_all output exceeds limit")
22512218

22522219
largeRun := strings.Repeat("a", maxRegexInputBytes-1024)
22532220
replaced, err := script.Call(

0 commit comments

Comments
 (0)