github.com/argoproj/argo-cd/v2@v2.10.9/server/application/websocket_test.go (about) 1 package application 2 3 import ( 4 "encoding/json" 5 "github.com/gorilla/websocket" 6 "github.com/stretchr/testify/assert" 7 "net/http" 8 "net/http/httptest" 9 "strings" 10 "testing" 11 ) 12 13 func reconnect(w http.ResponseWriter, r *http.Request) { 14 var upgrader = websocket.Upgrader{} 15 c, err := upgrader.Upgrade(w, r, nil) 16 if err != nil { 17 return 18 } 19 20 ts := terminalSession{wsConn: c} 21 _, _ = ts.reconnect() 22 } 23 24 func TestReconnect(t *testing.T) { 25 26 s := httptest.NewServer(http.HandlerFunc(reconnect)) 27 defer s.Close() 28 29 u := "ws" + strings.TrimPrefix(s.URL, "http") 30 31 // Connect to the server 32 ws, _, err := websocket.DefaultDialer.Dial(u, nil) 33 assert.NoError(t, err) 34 35 defer ws.Close() 36 37 _, p, _ := ws.ReadMessage() 38 39 var message TerminalMessage 40 41 err = json.Unmarshal(p, &message) 42 43 assert.NoError(t, err) 44 assert.Equal(t, message.Data, ReconnectMessage) 45 46 }