From 9a473b9bf106bad9e13c78336ba38a227da645fd Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Mon, 7 Jun 2021 17:08:02 +0200 Subject: [PATCH] Wait for close message to be processed in test client before closing. --- testclient_test.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/testclient_test.go b/testclient_test.go index 63ffc78..9dc275a 100644 --- a/testclient_test.go +++ b/testclient_test.go @@ -227,7 +227,13 @@ func (c *TestClient) CloseWithBye() { } func (c *TestClient) Close() { - c.conn.WriteMessage(websocket.CloseMessage, []byte{}) // nolint + if err := c.conn.WriteMessage(websocket.CloseMessage, []byte{}); err == websocket.ErrCloseSent { + // Already closed + return + } + + // Wait a bit for close message to be processed. + time.Sleep(100 * time.Millisecond) c.conn.Close() // Drain any entries in the channels to terminate the read goroutine.