Skip to content

Commit

Permalink
Improve testing, assertify usage and use common.ErrParsingWSField
Browse files Browse the repository at this point in the history
  • Loading branch information
thrasher- committed Mar 10, 2025
1 parent 11d360a commit 39e5479
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 14 deletions.
7 changes: 3 additions & 4 deletions backtester/eventhandlers/strategies/strategies_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,11 @@ func TestCreateNewStrategy(t *testing.T) {
t.Parallel()

// invalid Handler
resp, err := createNewStrategy(dollarcostaverage.Name, false, nil)
_, err := createNewStrategy(dollarcostaverage.Name, false, nil)
assert.ErrorIs(t, err, common.ErrNilPointer)
assert.Nil(t, resp)

// mismatched name
resp, err = createNewStrategy(dollarcostaverage.Name, false, &customStrategy{})
resp, err := createNewStrategy(dollarcostaverage.Name, false, &customStrategy{})
assert.NoError(t, err, "createNewStrategy should not error")
assert.Nil(t, resp)

Expand All @@ -101,7 +100,7 @@ func TestCreateNewStrategy(t *testing.T) {
h = new(dollarcostaverage.Strategy)
resp, err = createNewStrategy(dollarcostaverage.Name, true, h)
assert.NoError(t, err, "createNewStrategy should not error")
assert.NotNil(t, resp)
assert.NotSame(t, h, resp, "createNewStrategy must return a new pointer")

// simultaneous processing desired but not supported
h = &customStrategy{allowSimultaneousProcessing: false}
Expand Down
2 changes: 1 addition & 1 deletion config/versions/versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ func (m *manager) latest() (uint16, error) {
if len(m.versions) == 0 {
return 0, errNoVersions
}
return uint16(len(m.versions)) - 1, nil
return uint16(len(m.versions)) - 1, nil //nolint:gosec // Ignore this as we hardcode version numbers
}

// checkVersions ensures that registered versions are consistent
Expand Down
6 changes: 3 additions & 3 deletions engine/engine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,9 +386,9 @@ func TestGetDefaultConfigurations(t *testing.T) {
assert.True(t, defaultCfg.Enabled, "Enabled should have the correct value")

if exch.SupportsWebsocket() {
assert.Positive(t, defaultCfg.WebsocketResponseCheckTimeout, 0)
assert.Positive(t, defaultCfg.WebsocketResponseMaxLimit, 0)
assert.Positive(t, defaultCfg.WebsocketTrafficTimeout, 0)
assert.Positive(t, defaultCfg.WebsocketResponseCheckTimeout, "WebsocketResponseCheckTimeout should be positive")
assert.Positive(t, defaultCfg.WebsocketResponseMaxLimit, "WebsocketResponseMaxLimit should be positive")
assert.Positive(t, defaultCfg.WebsocketTrafficTimeout, "WebsocketTrafficTimeout should be positive")
}

require.NoError(t, exch.Setup(defaultCfg), "Setup must not error")
Expand Down
10 changes: 4 additions & 6 deletions exchanges/bitfinex/bitfinex_websocket.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ import (
"github.com/thrasher-corp/gocryptotrader/log"
)

var errParsingWSField = errors.New("error parsing WS field")

const (
authenticatedBitfinexWebsocketEndpoint = "wss://api.bitfinex.com/ws/2"
publicBitfinexWebsocketEndpoint = "wss://api-pub.bitfinex.com/ws/2"
Expand Down Expand Up @@ -949,22 +947,22 @@ func (b *Bitfinex) handleWSAllTrades(s *subscription.Subscription, respRaw []byt
}
v, valueType, _, err := jsonparser.Get(respRaw, "[1]")
if err != nil {
return fmt.Errorf("%w `tradesUpdate[1]`: %w", errParsingWSField, err)
return fmt.Errorf("%w `tradesUpdate[1]`: %w", common.ErrParsingWSField, err)
}
var wsTrades []*wsTrade
switch valueType {
case jsonparser.String:
t, err := b.handleWSPublicTradeUpdate(respRaw)
if err != nil {
return fmt.Errorf("%w `tradesUpdate[2]`: %w", errParsingWSField, err)
return fmt.Errorf("%w `tradesUpdate[2]`: %w", common.ErrParsingWSField, err)
}
wsTrades = []*wsTrade{t}
case jsonparser.Array:
if wsTrades, err = b.handleWSPublicTradesSnapshot(v); err != nil {
return fmt.Errorf("%w `tradesSnapshot`: %w", errParsingWSField, err)
return fmt.Errorf("%w `tradesSnapshot`: %w", common.ErrParsingWSField, err)
}
default:
return fmt.Errorf("%w `tradesUpdate[1]`: %w `%s`", errParsingWSField, jsonparser.UnknownValueTypeError, valueType)
return fmt.Errorf("%w `tradesUpdate[1]`: %w `%s`", common.ErrParsingWSField, jsonparser.UnknownValueTypeError, valueType)
}
trades := make([]trade.Data, len(wsTrades))
for _, w := range wsTrades {
Expand Down

0 comments on commit 39e5479

Please sign in to comment.