WitNote / internal /cli /diagnostics_test.go
AUXteam's picture
Upload folder using huggingface_hub
6a7089a verified
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")
}
}