37 lines
1.1 KiB
Go
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)
|
||
|
|
}
|
||
|
|
}
|