| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package handler
- import (
- "net/http"
- "net/http/httptest"
- "testing"
- "github.com/Wei-Shaw/sub2api/internal/service"
- "github.com/gin-gonic/gin"
- "github.com/stretchr/testify/require"
- )
- // TestOpenAIUpstreamEndpoint_ViaGetUpstreamEndpoint verifies that the
- // unified GetUpstreamEndpoint helper produces the same results as the
- // former normalizedOpenAIUpstreamEndpoint for OpenAI platform requests.
- func TestOpenAIUpstreamEndpoint_ViaGetUpstreamEndpoint(t *testing.T) {
- gin.SetMode(gin.TestMode)
- tests := []struct {
- name string
- path string
- want string
- }{
- {
- name: "responses root maps to responses upstream",
- path: "/v1/responses",
- want: EndpointResponses,
- },
- {
- name: "responses compact keeps compact suffix",
- path: "/openai/v1/responses/compact",
- want: "/v1/responses/compact",
- },
- {
- name: "responses nested suffix preserved",
- path: "/openai/v1/responses/compact/detail",
- want: "/v1/responses/compact/detail",
- },
- {
- name: "non responses path uses platform fallback",
- path: "/v1/messages",
- want: EndpointResponses,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- rec := httptest.NewRecorder()
- c, _ := gin.CreateTestContext(rec)
- c.Request = httptest.NewRequest(http.MethodPost, tt.path, nil)
- got := GetUpstreamEndpoint(c, service.PlatformOpenAI)
- require.Equal(t, tt.want, got)
- })
- }
- }
|