internal/api/runtime_reload_regression_test.go
Rama main · réplica de lectura del repositorio original.
package api
import (
"net/http"
"net/http/httptest"
"sync"
"testing"
"github.com/router-for-me/CLIProxyAPI/v8/internal/config"
)
func TestHandlerRuntimeReloadConcurrentWithModelLists(t *testing.T) {
server := newTestServer(t)
host := &mockModelListInterceptorHost{}
start := make(chan struct{})
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
<-start
for i := 0; i < 500; i++ {
server.handlers.SetPluginHost(host)
server.handlers.UpdateClients(&config.SDKConfig{RequestLog: i%2 == 0})
server.handlers.SetPluginHost(nil)
}
}()
go func() {
defer wg.Done()
<-start
for i := 0; i < 500; i++ {
req := httptest.NewRequest(http.MethodGet, "/v1/models", nil)
req.Header.Set("Authorization", "Bearer test-key")
req.Header.Set("User-Agent", "codex_cli_rs/0.100.0")
rr := httptest.NewRecorder()
server.engine.ServeHTTP(rr, req)
if rr.Code != http.StatusOK {
t.Errorf("model list status = %d, want 200", rr.Code)
return
}
}
}()
close(start)
wg.Wait()
}