MCPcopy
hub / github.com/mum4k/termdash / TestAlertControlAlertState

Function TestAlertControlAlertState

widgets/spectrum/alertcontrol_test.go:136–173  ·  view source on GitHub ↗

TestAlertControlAlertState verifies banner visibility follows samples and focus.

(t *testing.T)

Source from the content-addressed store, hash-verified

134
135// TestAlertControlAlertState verifies banner visibility follows samples and focus.
136func TestAlertControlAlertState(t *testing.T) {
137 control, err := NewAlertControl(200, 600, 50, 500, nil)
138 if err != nil {
139 t.Fatalf("NewAlertControl => unexpected error: %v", err)
140 }
141
142 layout := control.layout(image.Rect(2, 2, 98, 18), "PING LATTICE")
143 if !control.HandleMouse(layout.checkbox.Min, image.Rect(2, 2, 98, 18), "PING LATTICE") {
144 t.Fatal("HandleMouse checkbox => false, want true")
145 }
146
147 control.UpdateSamples([]int{100, 200, 550})
148 if got := control.AlertMessage(); !strings.Contains(got, "Warning: data exceeds 500 threshold") {
149 t.Fatalf("AlertMessage = %q, want warning banner", got)
150 }
151
152 ft := faketerm.MustNew(image.Point{X: 100, Y: 32})
153 pane := image.Rect(0, 10, 100, 32)
154 if err := control.DrawAlert(ft, pane, true); err != nil {
155 t.Fatalf("DrawAlert => unexpected error: %v", err)
156 }
157 if rendered := ft.String(); !strings.Contains(rendered, "Warning: data exceeds 500 threshold") {
158 t.Fatalf("DrawAlert output = %q, want centered warning", rendered)
159 }
160
161 ft = faketerm.MustNew(image.Point{X: 100, Y: 32})
162 if err := control.DrawAlert(ft, pane, false); err != nil {
163 t.Fatalf("DrawAlert (unfocused) => unexpected error: %v", err)
164 }
165 if rendered := ft.String(); strings.Contains(rendered, "Warning: data exceeds 500 threshold") {
166 t.Fatalf("DrawAlert unfocused output = %q, want no warning", rendered)
167 }
168
169 control.UpdateSamples([]int{100, 200, 300})
170 if got := control.AlertMessage(); got != "" {
171 t.Fatalf("AlertMessage below threshold = %q, want empty", got)
172 }
173}
174
175func TestAlertControlSetters(t *testing.T) {
176 control, err := NewAlertControl(200, 600, 50, 500, nil)

Callers

nothing calls this directly

Calls 8

layoutMethod · 0.95
HandleMouseMethod · 0.95
UpdateSamplesMethod · 0.95
AlertMessageMethod · 0.95
DrawAlertMethod · 0.95
MustNewFunction · 0.92
NewAlertControlFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected