| 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" |
| ) |
|
|
| |
| |
| |
| 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) |
| }) |
| } |
| } |
|
|