diff options
Diffstat (limited to 'internal/provider/forwarder_test.go')
| -rw-r--r-- | internal/provider/forwarder_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/provider/forwarder_test.go b/internal/provider/forwarder_test.go new file mode 100644 index 0000000..2e9b4a1 --- /dev/null +++ b/internal/provider/forwarder_test.go @@ -0,0 +1,39 @@ +package provider + +import ( + "encoding/json" + "testing" + + "aigw/internal/domain" +) + +func TestRewriteRequestForcesOpenAIStreamUsage(t *testing.T) { + result, err := rewriteRequest([]byte(`{"model":"public/model","stream":true,"stream_options":{"other":true}}`), "upstream/model", domain.ProtocolOpenAI) + if err != nil { + t.Fatal(err) + } + var body struct { + Model string `json:"model"` + StreamOptions map[string]any `json:"stream_options"` + } + if err := json.Unmarshal(result, &body); err != nil { + t.Fatal(err) + } + if body.Model != "upstream/model" || body.StreamOptions["include_usage"] != true || body.StreamOptions["other"] != true { + t.Fatalf("unexpected rewritten body: %s", result) + } +} + +func TestRewriteRequestDoesNotAddStreamOptionsToAnthropic(t *testing.T) { + result, err := rewriteRequest([]byte(`{"model":"public/model","stream":true}`), "upstream/model", domain.ProtocolAnthropic) + if err != nil { + t.Fatal(err) + } + var body map[string]json.RawMessage + if err := json.Unmarshal(result, &body); err != nil { + t.Fatal(err) + } + if _, exists := body["stream_options"]; exists { + t.Fatalf("unexpected OpenAI stream options in Anthropic request: %s", result) + } +} |
