github.com/kubeshop/testkube@v1.17.23/pkg/event/kind/websocket/loader_test.go (about)

     1  package websocket
     2  
     3  import (
     4  	"testing"
     5  
     6  	fastwebsocket "github.com/fasthttp/websocket"
     7  	"github.com/gofiber/websocket/v2"
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestLoader_Add(t *testing.T) {
    12  
    13  	t.Run("adds connection to websockets pool", func(t *testing.T) {
    14  		t.Skip("not implemented - TODO find a way to get real websocket connection")
    15  		// given
    16  		l := NewWebsocketLoader()
    17  		ws := newTestWebsocket()
    18  
    19  		// when
    20  		l.Add(ws)
    21  		l.Add(ws)
    22  
    23  		// then
    24  		assert.Equal(t, 2, len(l.Listener.Websockets))
    25  	})
    26  
    27  	t.Run("should remove websocket on connection close", func(t *testing.T) {
    28  		t.Skip("not implemented - figure out how to call handle close")
    29  
    30  		// given
    31  		l := NewWebsocketLoader()
    32  		ws := newTestWebsocket()
    33  		l.Add(ws)
    34  		assert.Equal(t, 1, len(l.Listener.Websockets))
    35  
    36  		// when
    37  		// on close is handled on frame with CloseMessage
    38  		l.Listener.Websockets[0].Conn.Close()
    39  
    40  		// then
    41  		assert.Equal(t, 0, len(l.Listener.Websockets))
    42  	})
    43  }
    44  
    45  // nolint
    46  func newTestWebsocket() *websocket.Conn {
    47  	return &websocket.Conn{Conn: &fastwebsocket.Conn{}}
    48  }