Files
gocryptotrader/exchanges/bybit/linear_websocket_test.go
Gareth Kirwan 5d6755b76e linters: Exclude govet shadow check on exchange instances (#2097)
* Linters: Exclude govet shadow check on e in tests

* Linters: Remove nolint rule for new(Exchange) in tests

Replay with:
```
perl -pi -e 's{(\se\s:=\s.*?)\s*//nolint:govet // Intentional shadow.*}{$1}' **/*_test.go
```
2025-10-29 09:30:23 +11:00

79 lines
3.0 KiB
Go

package bybit
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/thrasher-corp/gocryptotrader/exchanges/asset"
testexch "github.com/thrasher-corp/gocryptotrader/internal/testing/exchange"
)
func TestGenerateLinearDefaultSubscriptions(t *testing.T) {
t.Parallel()
_, err := e.GenerateLinearDefaultSubscriptions(asset.OptionCombo)
assert.ErrorIs(t, err, asset.ErrInvalidAsset)
e := new(Exchange)
require.NoError(t, testexch.Setup(e), "Test instance Setup must not error")
subs, err := e.GenerateLinearDefaultSubscriptions(asset.USDTMarginedFutures)
require.NoError(t, err, "GenerateLinearDefaultSubscriptions must not error")
assert.NotEmpty(t, subs, "Subscriptions should not be empty")
for i := range subs {
assert.Equal(t, asset.USDTMarginedFutures, subs[i].Asset, "Asset type should be USDTMarginedFutures")
}
err = e.CurrencyPairs.SetAssetEnabled(asset.USDTMarginedFutures, false)
require.NoError(t, err, "SetAssetEnabled must not error")
subs, err = e.GenerateLinearDefaultSubscriptions(asset.USDTMarginedFutures)
require.NoError(t, err, "GenerateLinearDefaultSubscriptions must not error")
assert.Empty(t, subs, "Subscriptions should be empty when asset is disabled")
subs, err = e.GenerateLinearDefaultSubscriptions(asset.USDCMarginedFutures)
require.NoError(t, err, "GenerateLinearDefaultSubscriptions must not error")
assert.NotEmpty(t, subs, "Subscriptions should not be empty")
for i := range subs {
assert.Equal(t, asset.USDCMarginedFutures, subs[i].Asset, "Asset type should be USDCMarginedFutures")
}
}
func TestLinearSubscribe(t *testing.T) {
t.Parallel()
e := new(Exchange)
require.NoError(t, testexch.Setup(e), "Test instance Setup must not error")
subs, err := e.GenerateLinearDefaultSubscriptions(asset.USDTMarginedFutures)
require.NoError(t, err, "GenerateLinearDefaultSubscriptions must not error")
assert.NotEmpty(t, subs, "Subscriptions should not be empty")
err = e.LinearSubscribe(t.Context(), &FixtureConnection{}, asset.OptionCombo, subs)
require.ErrorIs(t, err, asset.ErrInvalidAsset)
err = e.LinearSubscribe(t.Context(), &FixtureConnection{}, asset.USDTMarginedFutures, subs)
require.NoError(t, err, "LinearSubscribe must not error")
}
func TestLinearUnsubscribe(t *testing.T) {
t.Parallel()
e := new(Exchange)
require.NoError(t, testexch.Setup(e), "Test instance Setup must not error")
subs, err := e.GenerateLinearDefaultSubscriptions(asset.USDTMarginedFutures)
require.NoError(t, err, "GenerateLinearDefaultSubscriptions must not error")
assert.NotEmpty(t, subs, "Subscriptions should not be empty")
err = e.LinearSubscribe(t.Context(), &FixtureConnection{}, asset.USDTMarginedFutures, subs)
require.NoError(t, err, "LinearSubscribe must not error")
err = e.LinearUnsubscribe(t.Context(), &FixtureConnection{}, asset.OptionCombo, subs)
require.ErrorIs(t, err, asset.ErrInvalidAsset)
err = e.LinearUnsubscribe(t.Context(), &FixtureConnection{}, asset.USDTMarginedFutures, subs)
require.NoError(t, err, "LinearUnsubscribe must not error")
}