TestAlertControlAlertState verifies banner visibility follows samples and focus.
(t *testing.T)
| 134 | |
| 135 | // TestAlertControlAlertState verifies banner visibility follows samples and focus. |
| 136 | func 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 | |
| 175 | func TestAlertControlSetters(t *testing.T) { |
| 176 | control, err := NewAlertControl(200, 600, 50, 500, nil) |
nothing calls this directly
no test coverage detected