feat: auto-discover Lingma transport endpoints
This commit is contained in:
63
internal/lingmaipc/transport_test.go
Normal file
63
internal/lingmaipc/transport_test.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package lingmaipc
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestResolveSharedClientInfoFromJSON(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
path := filepath.Join(dir, ".info.json")
|
||||
content := `{"websocketPort":36510,"pid":14060,"ipcServerPath":"\\\\.\\pipe\\lingma-bf0f32","isDev":false}`
|
||||
if err := os.WriteFile(path, []byte(content), 0o644); err != nil {
|
||||
t.Fatalf("write shared info json: %v", err)
|
||||
}
|
||||
|
||||
info, err := resolveSharedClientInfoFromPaths([]string{path})
|
||||
if err != nil {
|
||||
t.Fatalf("resolve shared info json: %v", err)
|
||||
}
|
||||
if info.WebSocketPort != 36510 {
|
||||
t.Fatalf("unexpected websocket port: %d", info.WebSocketPort)
|
||||
}
|
||||
if info.PID != 14060 {
|
||||
t.Fatalf("unexpected pid: %d", info.PID)
|
||||
}
|
||||
if info.IPCServerPath != `\\.\pipe\lingma-bf0f32` {
|
||||
t.Fatalf("unexpected pipe path: %q", info.IPCServerPath)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveSharedClientInfoFromLegacyFile(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
path := filepath.Join(dir, ".info")
|
||||
content := "36510\n14060\n\\\\.\\pipe\\lingma-bf0f32\n"
|
||||
if err := os.WriteFile(path, []byte(content), 0o644); err != nil {
|
||||
t.Fatalf("write shared info legacy: %v", err)
|
||||
}
|
||||
|
||||
info, err := resolveSharedClientInfoFromPaths([]string{path})
|
||||
if err != nil {
|
||||
t.Fatalf("resolve shared info legacy: %v", err)
|
||||
}
|
||||
if info.WebSocketPort != 36510 {
|
||||
t.Fatalf("unexpected websocket port: %d", info.WebSocketPort)
|
||||
}
|
||||
if info.PID != 14060 {
|
||||
t.Fatalf("unexpected pid: %d", info.PID)
|
||||
}
|
||||
if info.IPCServerPath != `\\.\pipe\lingma-bf0f32` {
|
||||
t.Fatalf("unexpected pipe path: %q", info.IPCServerPath)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNormalizeWebSocketURLAddsRootPath(t *testing.T) {
|
||||
got, err := normalizeWebSocketURL("ws://127.0.0.1:36510")
|
||||
if err != nil {
|
||||
t.Fatalf("normalize websocket url: %v", err)
|
||||
}
|
||||
if got != "ws://127.0.0.1:36510/" {
|
||||
t.Fatalf("unexpected normalized websocket url: %q", got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user