Skip to content

Commit 38d6efc

Browse files
committed
websocket: return error from configured URL lookup
1 parent fc92b90 commit 38d6efc

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

exchange/websocket/manager.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -878,9 +878,9 @@ func (m *Manager) GetWebsocketURL() string {
878878
}
879879

880880
// GetConfiguredWebsocketURLs returns known websocket connection URLs.
881-
func (m *Manager) GetConfiguredWebsocketURLs() []string {
881+
func (m *Manager) GetConfiguredWebsocketURLs() ([]string, error) {
882882
if m == nil {
883-
return nil
883+
return nil, fmt.Errorf("%w: Manager", common.ErrNilPointer)
884884
}
885885

886886
m.m.Lock()
@@ -901,16 +901,16 @@ func (m *Manager) GetConfiguredWebsocketURLs() []string {
901901
seen[ws.setup.URL] = struct{}{}
902902
urls = append(urls, ws.setup.URL)
903903
}
904-
return urls
904+
return urls, nil
905905
}
906906

907907
if m.runningURL != "" {
908-
return []string{m.runningURL}
908+
return []string{m.runningURL}, nil
909909
}
910910
if m.defaultURL != "" {
911-
return []string{m.defaultURL}
911+
return []string{m.defaultURL}, nil
912912
}
913-
return nil
913+
return nil, nil
914914
}
915915

916916
// SetProxyAddress sets websocket proxy address

exchange/websocket/manager_test.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,18 +1212,26 @@ func TestGetConfiguredWebsocketURLs(t *testing.T) {
12121212
t.Parallel()
12131213

12141214
var nilManager *Manager
1215-
assert.Nil(t, nilManager.GetConfiguredWebsocketURLs())
1215+
urls, err := nilManager.GetConfiguredWebsocketURLs()
1216+
assert.ErrorIs(t, err, common.ErrNilPointer)
1217+
assert.Nil(t, urls)
12161218

12171219
single := NewManager()
12181220
require.NoError(t, single.Setup(newDefaultSetup()))
12191221
single.runningURL = "wss://single-running"
1220-
assert.Equal(t, []string{"wss://single-running"}, single.GetConfiguredWebsocketURLs())
1222+
urls, err = single.GetConfiguredWebsocketURLs()
1223+
require.NoError(t, err)
1224+
assert.Equal(t, []string{"wss://single-running"}, urls)
12211225

12221226
single.runningURL = ""
1223-
assert.Equal(t, []string{single.defaultURL}, single.GetConfiguredWebsocketURLs())
1227+
urls, err = single.GetConfiguredWebsocketURLs()
1228+
require.NoError(t, err)
1229+
assert.Equal(t, []string{single.defaultURL}, urls)
12241230

12251231
single.defaultURL = ""
1226-
assert.Nil(t, single.GetConfiguredWebsocketURLs(), "Configured websocket URLs should be nil when no URLs are set")
1232+
urls, err = single.GetConfiguredWebsocketURLs()
1233+
require.NoError(t, err)
1234+
assert.Nil(t, urls, "Configured websocket URLs should be nil when no URLs are set")
12271235

12281236
multi := NewManager()
12291237
setup := newDefaultSetup()
@@ -1252,7 +1260,8 @@ func TestGetConfiguredWebsocketURLs(t *testing.T) {
12521260
}
12531261
require.NoError(t, multi.SetupNewConnection(connSetupTwo))
12541262

1255-
urls := multi.GetConfiguredWebsocketURLs()
1263+
urls, err = multi.GetConfiguredWebsocketURLs()
1264+
require.NoError(t, err)
12561265
assert.ElementsMatch(t, []string{"wss://one.example/ws", "wss://two.example/ws"}, urls)
12571266
}
12581267

exchanges/exchange.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1801,7 +1801,10 @@ func Bootstrap(ctx context.Context, b IBotExchange) error {
18011801
if w, err := b.GetWebsocket(); err == nil {
18021802
wsURL = w.GetWebsocketURL()
18031803
if wsURL == "" {
1804-
wsURL = strings.Join(w.GetConfiguredWebsocketURLs(), ",")
1804+
urls, getErr := w.GetConfiguredWebsocketURLs()
1805+
if getErr == nil {
1806+
wsURL = strings.Join(urls, ",")
1807+
}
18051808
}
18061809
wsEnabled = w.IsEnabled()
18071810
}

0 commit comments

Comments
 (0)