mirror of
https://github.com/ollama/ollama.git
synced 2026-09-19 12:24:30 -04:00
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package server
|
|
|
|
import (
|
|
"net"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestCodexProxyHealthRoute(t *testing.T) {
|
|
t.Setenv("HOME", t.TempDir())
|
|
handler, err := (&Server{}).GenerateRoutes()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
req := httptest.NewRequest(http.MethodGet, "http://127.0.0.1/api/codex/_health", nil)
|
|
req.RemoteAddr = "127.0.0.1:1234"
|
|
recorder := httptest.NewRecorder()
|
|
|
|
handler.ServeHTTP(recorder, req)
|
|
if recorder.Code != http.StatusOK || recorder.Body.String() != `{"ok":true}` {
|
|
t.Fatalf("health response = %d %q", recorder.Code, recorder.Body.String())
|
|
}
|
|
}
|
|
|
|
func TestCodexProxyWebSocketUpgradeRequestsHTTPFallback(t *testing.T) {
|
|
t.Setenv("HOME", t.TempDir())
|
|
handler, err := (&Server{}).GenerateRoutes()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
req := httptest.NewRequest(http.MethodGet, "http://127.0.0.1/api/codex/v1/responses", nil)
|
|
req.RemoteAddr = "127.0.0.1:1234"
|
|
req.Header.Set("Connection", "Upgrade")
|
|
req.Header.Set("Upgrade", "websocket")
|
|
recorder := httptest.NewRecorder()
|
|
|
|
handler.ServeHTTP(recorder, req)
|
|
if recorder.Code != http.StatusUpgradeRequired {
|
|
t.Fatalf("WebSocket fallback response = %d %q, want 426", recorder.Code, recorder.Body.String())
|
|
}
|
|
}
|
|
|
|
func TestCodexProxyRemainsLocalOnExposedOllamaListener(t *testing.T) {
|
|
t.Setenv("HOME", t.TempDir())
|
|
handler, err := (&Server{addr: &net.TCPAddr{IP: net.IPv4zero, Port: 11434}}).GenerateRoutes()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
for _, tt := range []struct {
|
|
path string
|
|
want int
|
|
}{
|
|
{path: "/", want: http.StatusOK},
|
|
{path: "/api/codex/_health", want: http.StatusForbidden},
|
|
} {
|
|
req := httptest.NewRequest(http.MethodGet, "http://192.0.2.1:11434"+tt.path, nil)
|
|
req.RemoteAddr = "192.0.2.10:1234"
|
|
recorder := httptest.NewRecorder()
|
|
|
|
handler.ServeHTTP(recorder, req)
|
|
if recorder.Code != tt.want {
|
|
t.Fatalf("%s status = %d, want %d", tt.path, recorder.Code, tt.want)
|
|
}
|
|
}
|
|
}
|