64 lines
1.8 KiB
Go
64 lines
1.8 KiB
Go
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)
|
|
}
|
|
}
|