mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-14 12:02:27 +08:00
fix openai failover model body replacement
This commit is contained in:
@@ -445,6 +445,41 @@ func TestResolveOpenAIMessagesDispatchMappedModel(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestOpenAIModelMappedBody(t *testing.T) {
|
||||
body := []byte(`{"model":"alias","input":"hello"}`)
|
||||
calls := 0
|
||||
|
||||
forwardBody := openAIModelMappedBody(body, true, "gpt-5.4", func(body []byte, newModel string) []byte {
|
||||
calls++
|
||||
return service.ReplaceModelInBody(body, newModel)
|
||||
})
|
||||
|
||||
require.Equal(t, 1, calls)
|
||||
require.Equal(t, "gpt-5.4", gjson.GetBytes(forwardBody, "model").String())
|
||||
require.Equal(t, "alias", gjson.GetBytes(body, "model").String())
|
||||
}
|
||||
|
||||
func TestOpenAIModelMappedBodyCache(t *testing.T) {
|
||||
body := []byte(`{"model":"alias","input":"hello"}`)
|
||||
calls := 0
|
||||
mappedBody := newOpenAIModelMappedBodyCache(body, func(body []byte, newModel string) []byte {
|
||||
calls++
|
||||
return service.ReplaceModelInBody(body, newModel)
|
||||
})
|
||||
|
||||
first := mappedBody(true, "gpt-5.4")
|
||||
second := mappedBody(true, "gpt-5.4")
|
||||
third := mappedBody(true, "gpt-5.3-codex")
|
||||
unmapped := mappedBody(false, "ignored")
|
||||
|
||||
require.Equal(t, 2, calls)
|
||||
require.Equal(t, "gpt-5.4", gjson.GetBytes(first, "model").String())
|
||||
require.Equal(t, "gpt-5.4", gjson.GetBytes(second, "model").String())
|
||||
require.Equal(t, "gpt-5.3-codex", gjson.GetBytes(third, "model").String())
|
||||
require.Equal(t, body, unmapped)
|
||||
require.Same(t, &first[0], &second[0])
|
||||
}
|
||||
|
||||
func TestOpenAIResponses_MissingDependencies_ReturnsServiceUnavailable(t *testing.T) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user