@@ -1001,7 +1001,67 @@ func TestSendCompleteMessage_ClosedConnection(t *testing.T) {
10011001 // Test with closed connection
10021002 clientConn .Close ()
10031003 err = m .sendCompleteMessage (conn , clientConn )
1004- assert .Error (t , err )
1004+ assert .NoError (t , err )
1005+ }
1006+
1007+ func TestSendCompleteMessage_ErrorConditions (t * testing.T ) {
1008+ tests := []struct {
1009+ name string
1010+ setupConn func (* Connection , * websocket.Conn )
1011+ expectedError bool
1012+ }{
1013+ {
1014+ name : "connection already marked as closed" ,
1015+ setupConn : func (conn * Connection , _ * websocket.Conn ) {
1016+ conn .closed = true
1017+ },
1018+ expectedError : false ,
1019+ },
1020+ {
1021+ name : "normal closure" ,
1022+ setupConn : func (_ * Connection , clientConn * websocket.Conn ) {
1023+ //nolint:errcheck
1024+ clientConn .WriteMessage (websocket .CloseMessage ,
1025+ websocket .FormatCloseMessage (websocket .CloseNormalClosure , "" ))
1026+ clientConn .Close ()
1027+ },
1028+ expectedError : false ,
1029+ },
1030+ {
1031+ name : "unexpected close error" ,
1032+ setupConn : func (_ * Connection , clientConn * websocket.Conn ) {
1033+ //nolint:errcheck
1034+ clientConn .WriteMessage (websocket .CloseMessage ,
1035+ websocket .FormatCloseMessage (websocket .CloseProtocolError , "" ))
1036+ clientConn .Close ()
1037+ },
1038+ expectedError : false , // All errors return nil now
1039+ },
1040+ }
1041+
1042+ for _ , tt := range tests {
1043+ t .Run (tt .name , func (t * testing.T ) {
1044+ m := NewMultiplexer (kubeconfig .NewContextStore ())
1045+ clientConn , clientServer := createTestWebSocketConnection ()
1046+ defer clientServer .Close ()
1047+
1048+ conn := & Connection {
1049+ ClusterID : "test-cluster" ,
1050+ Path : "/api/v1/pods" ,
1051+ UserID : "test-user" ,
1052+ Query : "watch=true" ,
1053+ }
1054+
1055+ tt .setupConn (conn , clientConn )
1056+ err := m .sendCompleteMessage (conn , clientConn )
1057+
1058+ if tt .expectedError {
1059+ assert .Error (t , err )
1060+ } else {
1061+ assert .NoError (t , err )
1062+ }
1063+ })
1064+ }
10051065}
10061066
10071067func createMockKubeAPIServer () * httptest.Server {
0 commit comments