From 4d991725c376e5e3f881e35c9041a7f5fa9cd126 Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Tue, 8 Jun 2021 13:45:58 +0200 Subject: [PATCH] Add method to get pending messages from testclient. --- testclient_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/testclient_test.go b/testclient_test.go index 9dc275a..10818e9 100644 --- a/testclient_test.go +++ b/testclient_test.go @@ -422,6 +422,32 @@ func (c *TestClient) DrainMessages(ctx context.Context) error { return nil } +func (c *TestClient) GetPendingMessages(ctx context.Context) ([]*ServerMessage, error) { + var result []*ServerMessage + select { + case err := <-c.readErrorChan: + return nil, err + case msg := <-c.messageChan: + var m ServerMessage + if err := json.Unmarshal(msg, &m); err != nil { + return nil, err + } + result = append(result, &m) + n := len(c.messageChan) + for i := 0; i < n; i++ { + var m ServerMessage + msg = <-c.messageChan + if err := json.Unmarshal(msg, &m); err != nil { + return nil, err + } + result = append(result, &m) + } + case <-ctx.Done(): + return nil, ctx.Err() + } + return result, nil +} + func (c *TestClient) RunUntilMessage(ctx context.Context) (message *ServerMessage, err error) { select { case err = <-c.readErrorChan: