Files
silver_pose/v2/internal/ui/window_test.go
T

37 lines
1.1 KiB
Go

package ui
import (
"strings"
"testing"
"silverpose/v2/internal/fall"
"silverpose/v2/internal/source"
)
func TestViewModelUsesCriticalOnlyForConfirmed(t *testing.T) {
view := NewViewModel()
view.Apply(fall.Normal, source.Connected)
if view.Critical {
t.Fatal("normal monitoring state is critical")
}
view.Apply(fall.Confirmed, source.Connected)
if !view.Critical || !strings.Contains(view.StateText, "确认摔倒") {
t.Fatalf("confirmed view = %#v", view)
}
view.Apply(fall.Normal, source.Retrying)
if view.Critical || !strings.Contains(view.ConnectionText, "重连") {
t.Fatalf("retrying view = %#v", view)
}
}
func TestSettingsNeverExposeResolvedRTSPURL(t *testing.T) {
view := NewViewModel()
view.SetSourceReady("SILVER_POSE_RTSP_URL", true)
if strings.Contains(view.SettingsSummary, "rtsp://") || strings.Contains(view.SettingsSummary, "secret") {
t.Fatalf("settings leaked source: %q", view.SettingsSummary)
}
if !strings.Contains(view.SettingsSummary, "SILVER_POSE_RTSP_URL") {
t.Fatalf("settings omitted source environment name: %q", view.SettingsSummary)
}
}