File size: 949 Bytes
6a7089a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package cli
import (
"io"
"os"
"strings"
"testing"
)
func TestCheckServerAndGuide(t *testing.T) {
// Test successful connection
m := newMockServer()
m.response = `{"status":"ok"}`
defer m.close()
client := m.server.Client()
result := CheckServerAndGuide(client, m.base(), "")
if !result {
t.Error("expected CheckServerAndGuide to return true for working server")
}
// Test auth required (401)
m2 := newMockServer()
m2.statusCode = 401
m2.response = `{"error":"unauthorized"}`
defer m2.close()
client2 := m2.server.Client()
// Capture stderr
oldStderr := os.Stderr
r, w, _ := os.Pipe()
os.Stderr = w
result2 := CheckServerAndGuide(client2, m2.base(), "")
_ = w.Close()
os.Stderr = oldStderr
output, _ := io.ReadAll(r)
if result2 {
t.Error("expected CheckServerAndGuide to return false for 401")
}
if !strings.Contains(string(output), "Authentication required") {
t.Error("expected auth error message")
}
}
|