github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/bft/rpc/lib/client/ws/options_test.go (about)

     1  package ws
     2  
     3  import (
     4  	"io"
     5  	"log/slog"
     6  	"net/http"
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/gorilla/websocket"
    11  	"github.com/stretchr/testify/assert"
    12  	"github.com/stretchr/testify/require"
    13  )
    14  
    15  func TestClient_WithLogger(t *testing.T) {
    16  	t.Parallel()
    17  
    18  	var (
    19  		upgrader = websocket.Upgrader{}
    20  
    21  		handler = func(w http.ResponseWriter, r *http.Request) {
    22  			c, err := upgrader.Upgrade(w, r, nil)
    23  
    24  			require.NoError(t, err)
    25  			require.NoError(t, c.Close())
    26  		}
    27  	)
    28  
    29  	s := createTestServer(t, http.HandlerFunc(handler))
    30  	url := "ws" + strings.TrimPrefix(s.URL, "http")
    31  
    32  	// Create the client
    33  	logger := slog.New(slog.NewTextHandler(io.Discard, nil))
    34  	c, err := NewClient(url, WithLogger(logger))
    35  	require.NoError(t, err)
    36  
    37  	assert.Equal(t, logger, c.logger)
    38  }