From eadb2ffe85c43cf6fc741c9823cd28eedb4a844c Mon Sep 17 00:00:00 2001 From: Chia Date: Wed, 5 Aug 2026 22:01:29 +1200 Subject: feat: harden prepaid billing and commercial operations --- internal/provider/forwarder_test.go | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 internal/provider/forwarder_test.go (limited to 'internal/provider/forwarder_test.go') 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) + } +} -- cgit v1.2.3