From 812ba2a9a2ee6a16116f5a610eda1ab355b49f5d Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Thu, 14 May 2026 05:02:54 +0300 Subject: [PATCH] fix: golangci lint --- internal/engine/salutejazz/salutejazz.go | 34 ++++++---- .../engine/salutejazz/session_helpers_test.go | 66 ++++++++++++++----- 2 files changed, 70 insertions(+), 30 deletions(-) diff --git a/internal/engine/salutejazz/salutejazz.go b/internal/engine/salutejazz/salutejazz.go index 27f506f..c251858 100644 --- a/internal/engine/salutejazz/salutejazz.go +++ b/internal/engine/salutejazz/salutejazz.go @@ -28,6 +28,14 @@ const ( keyEvent = "event" keyRequestID = "requestId" keyPayload = "payload" + keyGroupID = "groupId" + + eventMediaIn = "media-in" + + payloadMethod = "method" + payloadTrack = "track" + payloadType = "type" + payloadAnswer = "answer" credentialKeyPassword = "password" @@ -544,14 +552,14 @@ func (s *Session) handleSubscriberOffer(payload map[string]any) { s.wsMu.Lock() _ = s.ws.WriteJSON(map[string]any{ keyRoomID: s.roomID, - keyEvent: "media-in", - "groupId": s.groupID, + keyEvent: eventMediaIn, + keyGroupID: s.groupID, keyRequestID: uuid.New().String(), keyPayload: map[string]any{ - "method": "rtc:answer", + payloadMethod: "rtc:answer", "description": map[string]any{ - "type": "answer", - "sdp": answer.SDP, + payloadType: payloadAnswer, + "sdp": answer.SDP, }, }, }) @@ -617,16 +625,16 @@ func (s *Session) sendPublisherTrackAdd(trackType, source string, muted bool) er if err := s.ws.WriteJSON(map[string]any{ keyRoomID: s.roomID, - keyEvent: "media-in", - "groupId": s.groupID, + keyEvent: eventMediaIn, + keyGroupID: s.groupID, keyRequestID: uuid.New().String(), keyPayload: map[string]any{ - "method": "rtc:track:add", - "cid": uuid.New().String(), - "track": map[string]any{ - "type": trackType, - "source": source, - "muted": muted, + payloadMethod: "rtc:track:add", + "cid": uuid.New().String(), + payloadTrack: map[string]any{ + payloadType: trackType, + "source": source, + "muted": muted, }, }, }); err != nil { diff --git a/internal/engine/salutejazz/session_helpers_test.go b/internal/engine/salutejazz/session_helpers_test.go index a422023..8ea6ec7 100644 --- a/internal/engine/salutejazz/session_helpers_test.go +++ b/internal/engine/salutejazz/session_helpers_test.go @@ -11,6 +11,8 @@ import ( "github.com/pion/webrtc/v4" ) +const testJazzGroupID = "group-1" + //nolint:cyclop // table-driven test naturally has many branches func TestSessionStateHelpers(t *testing.T) { s := &Session{ @@ -116,7 +118,9 @@ func TestSessionCanSendVideoOnlyModes(t *testing.T) { func TestSendPublisherTrackAddWritesJazzPayload(t *testing.T) { msgCh := make(chan map[string]any, 1) - upgrader := websocket.Upgrader{} + upgrader := websocket.Upgrader{ + CheckOrigin: func(*http.Request) bool { return true }, + } server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { @@ -135,7 +139,10 @@ func TestSendPublisherTrackAddWritesJazzPayload(t *testing.T) { defer server.Close() wsURL := "ws" + server.URL[len("http"):] - conn, _, err := websocket.DefaultDialer.Dial(wsURL, nil) + conn, resp, err := websocket.DefaultDialer.Dial(wsURL, nil) + if resp != nil && resp.Body != nil { + _ = resp.Body.Close() + } if err != nil { t.Fatalf("dial websocket: %v", err) } @@ -143,7 +150,7 @@ func TestSendPublisherTrackAddWritesJazzPayload(t *testing.T) { s := &Session{ roomID: "room-1", - groupID: "group-1", + groupID: testJazzGroupID, ws: conn, } if err := s.sendPublisherTrackAdd("VIDEO", "CAMERA", false); err != nil { @@ -151,21 +158,46 @@ func TestSendPublisherTrackAddWritesJazzPayload(t *testing.T) { } msg := <-msgCh - if msg[keyRoomID] != "room-1" || msg[keyEvent] != "media-in" || msg["groupId"] != "group-1" { - t.Fatalf("unexpected envelope: %+v", msg) + assertJazzTrackAddEnvelope(t, msg) + assertJazzTrackAddPayload(t, msg[keyPayload]) +} + +func assertJazzTrackAddEnvelope(t *testing.T, msg map[string]any) { + t.Helper() + + if msg[keyRoomID] != "room-1" { + t.Fatalf("roomId = %v, want room-1", msg[keyRoomID]) } - payload, ok := msg[keyPayload].(map[string]any) - if !ok { - t.Fatalf("payload missing or wrong type: %+v", msg[keyPayload]) + if msg[keyEvent] != eventMediaIn { + t.Fatalf("event = %v, want %s", msg[keyEvent], eventMediaIn) } - if payload["method"] != "rtc:track:add" { - t.Fatalf("method = %v, want rtc:track:add", payload["method"]) - } - track, ok := payload["track"].(map[string]any) - if !ok { - t.Fatalf("track missing or wrong type: %+v", payload["track"]) - } - if track["type"] != "VIDEO" || track["source"] != "CAMERA" || track["muted"] != false { - t.Fatalf("track = %+v, want video camera unmuted", track) + if msg[keyGroupID] != testJazzGroupID { + t.Fatalf("%s = %v, want %s", keyGroupID, msg[keyGroupID], testJazzGroupID) + } +} + +func assertJazzTrackAddPayload(t *testing.T, raw any) { + t.Helper() + + payload, ok := raw.(map[string]any) + if !ok { + t.Fatalf("payload missing or wrong type: %+v", raw) + } + if payload[payloadMethod] != "rtc:track:add" { + t.Fatalf("%s = %v, want rtc:track:add", payloadMethod, payload[payloadMethod]) + } + + track, ok := payload[payloadTrack].(map[string]any) + if !ok { + t.Fatalf("track missing or wrong type: %+v", payload[payloadTrack]) + } + if track[payloadType] != "VIDEO" { + t.Fatalf("%s = %v, want VIDEO", payloadType, track[payloadType]) + } + if track["source"] != "CAMERA" { + t.Fatalf("source = %v, want CAMERA", track["source"]) + } + if track["muted"] != false { + t.Fatalf("muted = %v, want false", track["muted"]) } }