Remove unused client method and increase test coverage.

This commit is contained in:
Joachim Bauch 2026-02-02 16:01:48 +01:00
commit 9cc07c8a65
No known key found for this signature in database
GPG key ID: 77C1D22D53E15F02
2 changed files with 23 additions and 27 deletions

View file

@ -462,33 +462,6 @@ close:
return false
}
func (c *Client) writeError(e error) bool { // nolint
message := &api.ServerMessage{
Type: "error",
Error: api.NewError("internal_error", e.Error()),
}
c.mu.Lock()
defer c.mu.Unlock()
if c.conn == nil {
return false
}
if !c.writeMessageLocked(message) {
return false
}
closeData := websocket.FormatCloseMessage(websocket.CloseInternalServerErr, e.Error())
c.conn.SetWriteDeadline(time.Now().Add(writeWait)) // nolint
if err := c.conn.WriteMessage(websocket.CloseMessage, closeData); err != nil {
if sessionId := c.GetSessionId(); sessionId != "" {
c.logger.Printf("Could not send close message to client %s: %v", sessionId, err)
} else {
c.logger.Printf("Could not send close message to %s: %v", c.RemoteAddr(), err)
}
}
return false
}
func (c *Client) writeMessage(message WritableClientMessage) bool {
c.mu.Lock()
defer c.mu.Unlock()

View file

@ -111,6 +111,7 @@ func (c *serverClient) GetSessionId() api.PublicSessionId {
}
func (c *serverClient) OnClosed() {
c.Close()
c.handler.removeClient(c)
}
@ -120,6 +121,9 @@ func (c *serverClient) OnMessageReceived(message []byte) {
var s string
if err := json.Unmarshal(message, &s); assert.NoError(c.t, err) {
assert.Equal(c.t, "Hello world!", s)
c.sendPing()
assert.EqualValues(c.t, "DE", c.Country())
assert.False(c.t, c.Client.IsInRoom("room-id"))
c.SendMessage(&api.ServerMessage{
Type: "welcome",
Welcome: &api.WelcomeServerMessage{
@ -212,8 +216,15 @@ func (h *testHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
id := h.id.Add(1)
client := newTestClient(h, r, conn, id)
h.addClient(client)
closed := make(chan struct{})
context.AfterFunc(client.Context(), func() {
close(closed)
})
go client.WritePump()
client.ReadPump()
<-closed
}
type localClient struct {
@ -246,6 +257,10 @@ func (c *localClient) WriteJSON(v any) error {
return c.conn.WriteJSON(v)
}
func (c *localClient) Write(v []byte) error {
return c.conn.WriteMessage(websocket.BinaryMessage, v)
}
func (c *localClient) ReadJSON(v any) error {
return c.conn.ReadJSON(v)
}
@ -281,6 +296,14 @@ func TestClient(t *testing.T) {
assert.EqualValues(1, clients[0].received.Load())
}
require.NoError(client.Write([]byte("Hello world!")))
if assert.NoError(client.ReadJSON(&msg)) &&
assert.Equal("error", msg.Type) &&
assert.NotNil(msg.Error) {
assert.Equal("invalid_format", msg.Error.Code)
assert.Equal("Invalid data format.", msg.Error.Message)
}
require.NoError(client.WriteJSON("Send error"))
if assert.NoError(client.ReadJSON(&msg)) &&
assert.Equal("error", msg.Type) &&