Files
talk/test/doctor_test.go
T

40 lines
1.3 KiB
Go
Raw Normal View History

package test
// Prozessgrenzen-Tests für die Diagnose-Befehle gegen einen echten Daemon.
import (
"strings"
"testing"
)
// TestDoctorMitDaemon: Läuft der Daemon, ist er ✔ mit Version und Log-
// Pfad; voices und test funktionieren als Prozess.
func TestDoctorMitDaemon(t *testing.T) {
root := t.TempDir()
fake := newFakeProvider(t, 0)
d := startDaemon(t, root, fake.srv.URL, nil)
env := daemonEnv(root, d.port, fake.srv.URL, nil)
res := runTalk(t, env, "doctor")
if res.code != 0 {
t.Fatalf("talk doctor: Exit %d\n%s\n%s", res.code, res.stdout, res.stderr)
}
for _, want := range []string{"✔ Daemon", "läuft unter " + d.baseURL, "daemon.log", "✔ elevenlabs", "Key gesetzt"} {
if !strings.Contains(res.stdout, want) {
t.Errorf("doctor ohne %q:\n%s", want, res.stdout)
}
}
res = runTalk(t, env, "doctor", "--probe")
if res.code != 0 || !strings.Contains(res.stdout, "Probe ok") {
t.Errorf("doctor --probe: Exit %d\n%s", res.code, res.stdout)
}
fake.waitArrived(t, 1)
if res := runTalk(t, env, "voices"); res.code != 0 || !strings.HasPrefix(res.stdout, "PROVIDER") {
t.Errorf("talk voices: Exit %d, stdout %q", res.code, res.stdout)
}
if res := runTalk(t, env, "test"); res.code != 0 || !strings.Contains(res.stdout, "provider: elevenlabs") {
t.Errorf("talk test: Exit %d, stdout %q, stderr %q", res.code, res.stdout, res.stderr)
}
}