mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
codebase: Replace !errors.Is(err, target) with testify (#1931)
* tests: Replace !errors.Is(err, target) with testify equivalents * codebase: Manual !errors.Is(err, target) replacements * typo: Replace errMisMatchedEvent with errMismatchedEvent * tests: Enhance error messages for better output * tests: Refactor error assertions in various test cases to use require and improve clarity * misc linter: Fix assert should wording * tests: Simplify assertions in TestCreateSignals for clarity and conciseness * tests: Enhance assertion message in TestCreateSignals
This commit is contained in:
@@ -1,23 +1,19 @@
|
||||
package gct
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/thrasher-corp/gocryptotrader/common"
|
||||
)
|
||||
|
||||
func TestErrorResponse(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := errorResponsef("")
|
||||
if !errors.Is(err, errFormatStringIsEmpty) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errFormatStringIsEmpty)
|
||||
}
|
||||
require.ErrorIs(t, err, errFormatStringIsEmpty)
|
||||
|
||||
_, err = errorResponsef("--")
|
||||
if !errors.Is(err, errNoArguments) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoArguments)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoArguments)
|
||||
|
||||
errResp, err := errorResponsef("error %s", "hello")
|
||||
if err != nil {
|
||||
@@ -32,7 +28,5 @@ func TestErrorResponse(t *testing.T) {
|
||||
func TestConstructRuntimeError(t *testing.T) {
|
||||
t.Parallel()
|
||||
err := constructRuntimeError(0, "", "", nil)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package gct
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
@@ -42,9 +41,8 @@ var (
|
||||
Value: "",
|
||||
}
|
||||
|
||||
tv = objects.TrueValue
|
||||
fv = objects.FalseValue
|
||||
errTestFailed = errors.New("test failed")
|
||||
tv = objects.TrueValue
|
||||
fv = objects.FalseValue
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
@@ -55,37 +53,19 @@ func TestMain(m *testing.M) {
|
||||
func TestExchangeOrderbook(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := ExchangeOrderbook(ctx, exch, currencyPair, delimiter, assetType)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
_, err = ExchangeOrderbook(exchError, currencyPair, delimiter, assetType)
|
||||
if err != nil && errors.Is(err, errTestFailed) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangeOrderbook()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestExchangeTicker(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := ExchangeTicker(ctx, exch, currencyPair, delimiter, assetType)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
_, err = ExchangeTicker(exchError, currencyPair, delimiter, assetType)
|
||||
if err != nil && errors.Is(err, errTestFailed) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangeTicker()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestExchangeExchanges(t *testing.T) {
|
||||
@@ -107,74 +87,52 @@ func TestExchangeExchanges(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ExchangeExchanges()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestExchangePairs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
_, err := ExchangePairs(exch, tv, assetType)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangePairs(exchError, tv, assetType)
|
||||
if err != nil && errors.Is(err, errTestFailed) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangePairs()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestAccountInfo(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
_, err := ExchangeAccountInfo()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
_, err = ExchangeAccountInfo(ctx, exch, assetType)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangeAccountInfo(ctx, exchError, assetType)
|
||||
if err != nil && !errors.Is(err, errTestFailed) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestExchangeOrderQuery(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
_, err := ExchangeOrderQuery()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
_, err = ExchangeOrderQuery(ctx, exch, orderID)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangeOrderQuery(ctx, exchError, orderID)
|
||||
if err != nil && !errors.Is(err, errTestFailed) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestExchangeOrderCancel(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := ExchangeOrderCancel()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
_, err = ExchangeOrderCancel(blank, orderID, currencyPair, assetType)
|
||||
if err == nil {
|
||||
@@ -205,9 +163,7 @@ func TestExchangeOrderCancel(t *testing.T) {
|
||||
func TestExchangeOrderSubmit(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := ExchangeOrderSubmit()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
orderSide := &objects.String{Value: "ASK"}
|
||||
orderType := &objects.String{Value: "LIMIT"}
|
||||
@@ -217,21 +173,15 @@ func TestExchangeOrderSubmit(t *testing.T) {
|
||||
|
||||
_, err = ExchangeOrderSubmit(ctx, exch, currencyPair, delimiter,
|
||||
orderType, orderSide, orderPrice, orderAmount, orderID, orderAsset)
|
||||
if err != nil && !errors.Is(err, errTestFailed) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangeOrderSubmit(ctx, exch, currencyPair, delimiter,
|
||||
orderType, orderSide, orderPrice, orderAmount, orderID, orderAsset)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = ExchangeOrderSubmit(ctx, objects.TrueValue, currencyPair, delimiter,
|
||||
orderType, orderSide, orderPrice, orderAmount, orderID, orderAsset)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestAllModuleNames(t *testing.T) {
|
||||
@@ -246,9 +196,7 @@ func TestAllModuleNames(t *testing.T) {
|
||||
func TestExchangeDepositAddress(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := ExchangeDepositAddress()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
currCode := &objects.String{Value: "BTC"}
|
||||
chain := &objects.String{Value: ""}
|
||||
@@ -258,17 +206,13 @@ func TestExchangeDepositAddress(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ExchangeDepositAddress(exchError, currCode, chain)
|
||||
if err != nil && !errors.Is(err, errTestFailed) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestExchangeWithdrawCrypto(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := ExchangeWithdrawCrypto()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
currCode := &objects.String{Value: "BTC"}
|
||||
desc := &objects.String{Value: "HELLO"}
|
||||
@@ -284,9 +228,7 @@ func TestExchangeWithdrawCrypto(t *testing.T) {
|
||||
func TestExchangeWithdrawFiat(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := ExchangeWithdrawFiat()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
currCode := &objects.String{Value: "AUD"}
|
||||
desc := &objects.String{Value: "Hello"}
|
||||
@@ -339,14 +281,10 @@ func TestParseInterval(t *testing.T) {
|
||||
func TestSetVerbose(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := setVerbose()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
require.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
_, err = setVerbose(objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
resp, err := setVerbose(&Context{})
|
||||
require.NoError(t, err)
|
||||
@@ -367,44 +305,28 @@ var dummyStr = &objects.String{Value: "xxxx"}
|
||||
func TestSetAccount(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := setAccount()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
require.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
_, err = setAccount(objects.TrueValue, objects.TrueValue, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
_, err = setAccount(&Context{}, objects.TrueValue, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
_, err = setAccount(&Context{}, dummyStr, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
_, err = setAccount(&Context{}, dummyStr, dummyStr, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
_, err = setAccount(&Context{}, dummyStr, dummyStr, dummyStr, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
_, err = setAccount(&Context{}, dummyStr, dummyStr, dummyStr, dummyStr, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
_, err = setAccount(&Context{}, dummyStr, dummyStr, dummyStr, dummyStr, dummyStr, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
resp, err := setAccount(&Context{}, dummyStr, dummyStr, dummyStr, dummyStr, dummyStr, dummyStr)
|
||||
require.NoError(t, err)
|
||||
@@ -443,19 +365,13 @@ func TestSetAccount(t *testing.T) {
|
||||
func TestSetSubAccount(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := setSubAccount()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
require.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
_, err = setSubAccount(objects.TrueValue, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
_, err = setSubAccount(&Context{}, objects.TrueValue)
|
||||
if !errors.Is(err, common.ErrTypeAssertFailure) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, common.ErrTypeAssertFailure)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrTypeAssertFailure)
|
||||
|
||||
subby, err := setSubAccount(&Context{}, dummyStr)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package indicators
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"math/rand"
|
||||
"os"
|
||||
"reflect"
|
||||
@@ -55,9 +54,7 @@ func TestMain(m *testing.M) {
|
||||
func TestMfi(t *testing.T) {
|
||||
_, err := mfi()
|
||||
if err != nil {
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
v := &objects.String{Value: testString}
|
||||
@@ -124,9 +121,7 @@ func TestRsi(t *testing.T) {
|
||||
func TestEMA(t *testing.T) {
|
||||
_, err := ema()
|
||||
if err != nil {
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
v := &objects.String{Value: testString}
|
||||
@@ -166,9 +161,7 @@ func TestEMA(t *testing.T) {
|
||||
func TestSMA(t *testing.T) {
|
||||
_, err := sma()
|
||||
if err != nil {
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
v := &objects.String{Value: testString}
|
||||
@@ -208,9 +201,7 @@ func TestSMA(t *testing.T) {
|
||||
func TestMACD(t *testing.T) {
|
||||
_, err := macd()
|
||||
if err != nil {
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
v := &objects.String{Value: testString}
|
||||
@@ -256,9 +247,7 @@ func TestMACD(t *testing.T) {
|
||||
func TestAtr(t *testing.T) {
|
||||
_, err := atr()
|
||||
if err != nil {
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
v := &objects.String{Value: testString}
|
||||
@@ -298,9 +287,7 @@ func TestAtr(t *testing.T) {
|
||||
func TestBbands(t *testing.T) {
|
||||
_, err := bbands()
|
||||
if err != nil {
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
_, err = bbands(&objects.String{Value: testString}, ohlcvData,
|
||||
@@ -361,9 +348,7 @@ func TestBbands(t *testing.T) {
|
||||
&objects.Float{Value: 2.0},
|
||||
&objects.String{Value: testString})
|
||||
if err != nil {
|
||||
if !errors.Is(err, errInvalidSelector) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, errInvalidSelector)
|
||||
}
|
||||
|
||||
_, err = bbands(objects.UndefinedValue, ohlcvData,
|
||||
@@ -379,9 +364,7 @@ func TestBbands(t *testing.T) {
|
||||
func TestOBV(t *testing.T) {
|
||||
_, err := obv()
|
||||
if err != nil {
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
_, err = obv(ohlcvData)
|
||||
|
||||
@@ -9,6 +9,8 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/gofrs/uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -49,25 +51,14 @@ func TestVMLoad(t *testing.T) {
|
||||
started: 1,
|
||||
}
|
||||
testVM := manager.New()
|
||||
err := testVM.Load(testScript)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, testVM.Load(testScript))
|
||||
|
||||
testScript = testScript[0 : len(testScript)-4]
|
||||
testVM = manager.New()
|
||||
err = testVM.Load(testScript)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, testVM.Load(testScript))
|
||||
|
||||
manager.config = configHelper(false, false, maxTestVirtualMachines)
|
||||
err = testVM.Load(testScript)
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrScriptingDisabled) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
require.NoError(t, testVM.Load(testScript))
|
||||
}
|
||||
|
||||
func TestVMLoad1s(t *testing.T) {
|
||||
@@ -76,18 +67,10 @@ func TestVMLoad1s(t *testing.T) {
|
||||
started: 1,
|
||||
}
|
||||
testVM := manager.New()
|
||||
err := testVM.Load(testScriptRunner1s)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, testVM.Load(testScriptRunner1s))
|
||||
|
||||
testVM.CompileAndRun()
|
||||
err = testVM.Shutdown()
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrNoVMLoaded) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
require.NoError(t, testVM.Shutdown())
|
||||
}
|
||||
|
||||
func TestVMLoadNegativeTimer(t *testing.T) {
|
||||
@@ -96,17 +79,10 @@ func TestVMLoadNegativeTimer(t *testing.T) {
|
||||
started: 1,
|
||||
}
|
||||
testVM := manager.New()
|
||||
err := testVM.Load(testScriptRunnerNegative)
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrNoVMLoaded) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
require.NoError(t, testVM.Load(testScriptRunnerNegative))
|
||||
|
||||
testVM.CompileAndRun()
|
||||
err = testVM.Shutdown()
|
||||
if err == nil {
|
||||
t.Fatal("expect error on shutdown due to invalid VM")
|
||||
}
|
||||
require.Error(t, testVM.Shutdown())
|
||||
}
|
||||
|
||||
func TestVMLoadNilVM(t *testing.T) {
|
||||
@@ -115,19 +91,10 @@ func TestVMLoadNilVM(t *testing.T) {
|
||||
started: 1,
|
||||
}
|
||||
testVM := manager.New()
|
||||
err := testVM.Load(testScript)
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrNoVMLoaded) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
require.NoError(t, testVM.Load(testScript))
|
||||
|
||||
testVM = nil
|
||||
err = testVM.Load(testScript)
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrNoVMLoaded) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
require.ErrorIs(t, testVM.Load(testScript), ErrNoVMLoaded)
|
||||
}
|
||||
|
||||
func TestCompileAndRunNilVM(t *testing.T) {
|
||||
@@ -137,28 +104,14 @@ func TestCompileAndRunNilVM(t *testing.T) {
|
||||
}
|
||||
vmcount := VMSCount.Len()
|
||||
testVM := manager.New()
|
||||
err := testVM.Load(testScript)
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrNoVMLoaded) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
err = testVM.Load(testScript)
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrNoVMLoaded) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
require.NoError(t, testVM.Load(testScript))
|
||||
|
||||
require.NoError(t, testVM.Load(testScript))
|
||||
|
||||
testVM = nil
|
||||
testVM.CompileAndRun()
|
||||
err = testVM.Shutdown()
|
||||
if err == nil {
|
||||
t.Fatal("VM should not be running with invalid timer")
|
||||
}
|
||||
if VMSCount.Len() == vmcount-1 {
|
||||
t.Fatal("expected VM count to decrease")
|
||||
}
|
||||
require.ErrorIs(t, testVM.Shutdown(), ErrNoVMLoaded)
|
||||
assert.NotEqual(t, vmcount-1, VMSCount.Len(), "Expected vmcount to decrease")
|
||||
}
|
||||
|
||||
func TestVMLoadNoFile(t *testing.T) {
|
||||
@@ -167,12 +120,7 @@ func TestVMLoadNoFile(t *testing.T) {
|
||||
started: 1,
|
||||
}
|
||||
testVM := manager.New()
|
||||
err := testVM.Load("missing file")
|
||||
if err != nil {
|
||||
if !errors.Is(err, os.ErrNotExist) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
assert.ErrorIs(t, testVM.Load("missing file"), os.ErrNotExist)
|
||||
}
|
||||
|
||||
func TestVMCompile(t *testing.T) {
|
||||
|
||||
@@ -2,7 +2,6 @@ package gct
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -10,8 +9,8 @@ import (
|
||||
"testing"
|
||||
|
||||
objects "github.com/d5/tengo/v2"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/thrasher-corp/gocryptotrader/common"
|
||||
"github.com/thrasher-corp/gocryptotrader/config"
|
||||
"github.com/thrasher-corp/gocryptotrader/engine"
|
||||
exchange "github.com/thrasher-corp/gocryptotrader/exchanges"
|
||||
@@ -102,45 +101,29 @@ var (
|
||||
|
||||
ctx = &gct.Context{}
|
||||
|
||||
tv = objects.TrueValue
|
||||
fv = objects.FalseValue
|
||||
errTestFailed = errors.New("test failed")
|
||||
tv = objects.TrueValue
|
||||
fv = objects.FalseValue
|
||||
)
|
||||
|
||||
func TestExchangeOrderbook(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := gct.ExchangeOrderbook(ctx, exch, currencyPair, delimiter, assetType)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = gct.ExchangeOrderbook(ctx, exchError, currencyPair, delimiter, assetType)
|
||||
if err != nil && errors.Is(err, errTestFailed) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = gct.ExchangeOrderbook()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestExchangeTicker(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := gct.ExchangeTicker(ctx, exch, currencyPair, delimiter, assetType)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = gct.ExchangeTicker(ctx, exchError, currencyPair, delimiter, assetType)
|
||||
if err != nil && errors.Is(err, errTestFailed) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = gct.ExchangeTicker()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestExchangeExchanges(t *testing.T) {
|
||||
@@ -161,27 +144,19 @@ func TestExchangeExchanges(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = gct.ExchangeExchanges()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestExchangePairs(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := gct.ExchangePairs(exch, tv, assetType)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = gct.ExchangePairs(exchError, tv, assetType)
|
||||
if err != nil && errors.Is(err, errTestFailed) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = gct.ExchangePairs()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
}
|
||||
|
||||
func TestExchangeAccountInfo(t *testing.T) {
|
||||
@@ -199,26 +174,18 @@ func TestExchangeOrderQuery(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
_, err := gct.ExchangeOrderQuery()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
_, err = gct.ExchangeOrderQuery(ctx, exch, orderID)
|
||||
if err != nil && err != common.ErrNotYetImplemented {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestExchangeOrderCancel(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := gct.ExchangeOrderCancel()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
_, err = gct.ExchangeOrderCancel(ctx, exch, orderID, currencyPair, assetType)
|
||||
if err != nil && err != common.ErrNotYetImplemented {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestExchangeOrderSubmit(t *testing.T) {
|
||||
@@ -251,66 +218,43 @@ func TestExchangeOrderSubmit(t *testing.T) {
|
||||
|
||||
func TestAllModuleNames(t *testing.T) {
|
||||
t.Parallel()
|
||||
x := gct.AllModuleNames()
|
||||
xType := reflect.TypeOf(x).Kind()
|
||||
if xType != reflect.Slice {
|
||||
t.Errorf("AllModuleNames() should return slice instead received: %v", x)
|
||||
}
|
||||
assert.IsType(t, []string{}, gct.AllModuleNames(), "AllModuleNames should return a slice of strings")
|
||||
}
|
||||
|
||||
func TestExchangeDepositAddress(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := gct.ExchangeDepositAddress()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
currCode := &objects.String{Value: "BTC"}
|
||||
chain := &objects.String{Value: ""}
|
||||
_, err = gct.ExchangeDepositAddress(exch, currCode, chain)
|
||||
if err != nil && err.Error() != "deposit address store is nil" {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestExchangeWithdrawCrypto(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := gct.ExchangeWithdrawCrypto()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
currCode := &objects.String{Value: "BTC"}
|
||||
desc := &objects.String{Value: "HELLO"}
|
||||
address := &objects.String{Value: "0xTHISISALEGITBTCADDRESSS"}
|
||||
amount := &objects.Float{Value: 1.0}
|
||||
|
||||
_, err = gct.ExchangeWithdrawCrypto(ctx,
|
||||
exch,
|
||||
currCode,
|
||||
address,
|
||||
address,
|
||||
amount,
|
||||
amount,
|
||||
desc)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
_, err = gct.ExchangeWithdrawCrypto(ctx, exch, currCode, address, address, amount, amount, desc)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestExchangeWithdrawFiat(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := gct.ExchangeWithdrawFiat()
|
||||
if !errors.Is(err, objects.ErrWrongNumArguments) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.ErrorIs(t, err, objects.ErrWrongNumArguments)
|
||||
|
||||
currCode := &objects.String{Value: "TEST"}
|
||||
amount := &objects.Float{Value: 1.0}
|
||||
desc := &objects.String{Value: "2"}
|
||||
bankID := &objects.String{Value: "3!"}
|
||||
_, err = gct.ExchangeWithdrawFiat(ctx, exch, currCode, desc, amount, bankID)
|
||||
if err != nil && err.Error() != "exchange Bitstamp bank details not found for TEST" {
|
||||
t.Error(err)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user