From 1ed9f5959951d3aa73c0af105b538e278c104819 Mon Sep 17 00:00:00 2001 From: Heatherm Huang Date: Sat, 18 Jul 2026 15:54:43 +0800 Subject: [PATCH] test(grok): keep media failover coverage on generation --- .../openai_gateway_credential_failover_loop_test.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/backend/internal/handler/openai_gateway_credential_failover_loop_test.go b/backend/internal/handler/openai_gateway_credential_failover_loop_test.go index 42a6bf6cd3..5725930ed3 100644 --- a/backend/internal/handler/openai_gateway_credential_failover_loop_test.go +++ b/backend/internal/handler/openai_gateway_credential_failover_loop_test.go @@ -645,7 +645,8 @@ func TestGrokMedia429FailoverIsBounded(t *testing.T) { _, _, upstream, router, cleanup := newGrokCredentialFailoverHandler(t, "first_429") defer cleanup() recorder := httptest.NewRecorder() - req := httptest.NewRequest(http.MethodGet, "/openai/v1/videos/request-1", nil) + req := httptest.NewRequest(http.MethodPost, "/openai/v1/videos/generations", bytes.NewBufferString(`{"model":"grok-imagine-video","prompt":"waves"}`)) + req.Header.Set("Content-Type", "application/json") router.ServeHTTP(recorder, req) @@ -657,7 +658,8 @@ func TestGrokMedia429FailoverIsBounded(t *testing.T) { _, _, upstream, router, cleanup := newGrokCredentialFailoverHandler(t, "all_429") defer cleanup() recorder := httptest.NewRecorder() - req := httptest.NewRequest(http.MethodGet, "/openai/v1/videos/request-1", nil) + req := httptest.NewRequest(http.MethodPost, "/openai/v1/videos/generations", bytes.NewBufferString(`{"model":"grok-imagine-video","prompt":"waves"}`)) + req.Header.Set("Content-Type", "application/json") router.ServeHTTP(recorder, req) @@ -678,7 +680,7 @@ func TestGrokOAuthCredentialFailoverAcrossHTTPHandlers(t *testing.T) { {name: "messages", method: http.MethodPost, path: "/openai/v1/messages", body: `{"model":"grok","max_tokens":16,"messages":[{"role":"user","content":"hello"}]}`}, {name: "chat completions", method: http.MethodPost, path: "/openai/v1/chat/completions", body: `{"model":"grok","messages":[{"role":"user","content":"hello"}],"stream":false}`}, {name: "chat completions raw fallback", method: http.MethodPost, path: "/openai/v1/chat/completions", body: `{"model":"grok","messages":[{"role":"user","content":"hello"}],"stop":["END"],"stream":false}`}, - {name: "grok media", method: http.MethodGet, path: "/openai/v1/videos/request-1"}, + {name: "grok media", method: http.MethodPost, path: "/openai/v1/videos/generations", body: `{"model":"grok-imagine-video","prompt":"waves"}`}, } for _, endpoint := range endpoints { @@ -904,7 +906,7 @@ func newGrokCredentialFailoverHandler(t *testing.T, mode string) (*OpenAIGateway apiKey := &service.APIKey{ ID: 902, GroupID: &groupID, User: &service.User{ID: 903, Status: service.StatusActive}, - Group: &service.Group{ID: groupID, Platform: service.PlatformGrok, Status: service.StatusActive}, + Group: &service.Group{ID: groupID, Platform: service.PlatformGrok, Status: service.StatusActive, AllowImageGeneration: true}, } router := gin.New() router.Use(func(c *gin.Context) { @@ -916,6 +918,7 @@ func newGrokCredentialFailoverHandler(t *testing.T, mode string) (*OpenAIGateway router.GET("/openai/v1/responses", h.ResponsesWebSocket) router.POST("/openai/v1/messages", h.Messages) router.POST("/openai/v1/chat/completions", h.ChatCompletions) + router.POST("/openai/v1/videos/generations", h.GrokVideoGeneration) router.GET("/openai/v1/videos/:request_id", h.GrokVideoStatus) handlerRefresherStarted.Store(router, refresher.started) cleanup := func() {