feat(gui): gpt-5.4-mini/mature pass 2

- Verified with `go test ./...`.

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Snider 2026-04-18 08:37:00 +01:00
parent 93fc3cc179
commit 5437487b3a
2 changed files with 16 additions and 4 deletions

View file

@ -260,10 +260,11 @@ func (em *WSEventManager) sendEvent(conn *websocket.Conn, event Event) {
// HandleWebSocket handles WebSocket upgrade and connection.
func (em *WSEventManager) HandleWebSocket(w http.ResponseWriter, r *http.Request) {
if em == nil {
if w != nil {
http.Error(w, http.StatusText(http.StatusServiceUnavailable), http.StatusServiceUnavailable)
}
if w == nil {
return
}
if em == nil || r == nil {
http.Error(w, http.StatusText(http.StatusServiceUnavailable), http.StatusServiceUnavailable)
return
}
em.mu.RLock()

View file

@ -180,6 +180,17 @@ func TestWSEventManager_HandleWebSocket_NilReceiverFailsClosed(t *testing.T) {
assert.Equal(t, http.StatusServiceUnavailable, recorder.Code)
}
func TestWSEventManager_HandleWebSocket_NilWriterFailsClosed(t *testing.T) {
em := NewWSEventManager()
req := httptest.NewRequest(http.MethodGet, "http://127.0.0.1/events", nil)
req.RemoteAddr = "127.0.0.1:12345"
assert.NotPanics(t, func() {
em.HandleWebSocket(nil, req)
})
}
func TestWSEventManager_HandleWebSocket_RejectsAfterClose(t *testing.T) {
em := NewWSEventManager()
em.Close()