kraken: Add check for correct order type in batch requests (#810)

* kraken: add check for correct order type in batch requests

* huboi: fix tests
This commit is contained in:
Ryan O'Hara-Reid
2021-10-19 11:37:07 +11:00
committed by GitHub
parent 0c00b7e1df
commit 8fe4d73e89
3 changed files with 21 additions and 6 deletions

View File

@@ -120,7 +120,7 @@ func TestFIndexPriceInfo(t *testing.T) {
func TestFContractPriceLimitations(t *testing.T) {
t.Parallel()
_, err := h.FContractPriceLimitations(context.Background(),
"BTC", "this_week", currency.Pair{})
"BTC", "next_quarter", currency.Pair{})
if err != nil {
t.Error(err)
}
@@ -129,7 +129,7 @@ func TestFContractPriceLimitations(t *testing.T) {
func TestFContractOpenInterest(t *testing.T) {
t.Parallel()
_, err := h.FContractOpenInterest(context.Background(),
"BTC", "this_week", currency.Pair{})
"BTC", "next_quarter", currency.Pair{})
if err != nil {
t.Error(err)
}

View File

@@ -20,6 +20,8 @@ import (
"github.com/thrasher-corp/gocryptotrader/exchanges/request"
)
var errInvalidBatchOrderType = errors.New("invalid batch order type")
// GetFuturesOrderbook gets orderbook data for futures
func (k *Kraken) GetFuturesOrderbook(ctx context.Context, symbol currency.Pair) (FuturesOrderbookData, error) {
var resp FuturesOrderbookData
@@ -71,6 +73,11 @@ func (k *Kraken) FuturesBatchOrder(ctx context.Context, data []PlaceBatchOrderDa
if err != nil {
return resp, err
}
if !common.StringDataCompare(validBatchOrderType, data[x].PlaceOrderType) {
return resp, fmt.Errorf("%s %w",
data[x].PlaceOrderType,
errInvalidBatchOrderType)
}
data[x].Symbol = formattedPair.String()
}
req := make(map[string]interface{})

View File

@@ -2,6 +2,7 @@ package kraken
import (
"context"
"errors"
"fmt"
"log"
"net/http"
@@ -156,16 +157,23 @@ func TestWrapperGetOrderInfo(t *testing.T) {
func TestFuturesBatchOrder(t *testing.T) {
t.Parallel()
if !areTestAPIKeysSet() || !canManipulateRealOrders {
t.Skip("skipping test: api keys not set or canManipulateRealOrders")
}
var data []PlaceBatchOrderData
var tempData PlaceBatchOrderData
tempData.PlaceOrderType = "cancel"
tempData.PlaceOrderType = "meow"
tempData.OrderID = "test123"
tempData.Symbol = "pi_xbtusd"
data = append(data, tempData)
_, err := k.FuturesBatchOrder(context.Background(), data)
if !errors.Is(err, errInvalidBatchOrderType) {
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidBatchOrderType)
}
if !areTestAPIKeysSet() || !canManipulateRealOrders {
t.Skip("skipping test: api keys not set or canManipulateRealOrders")
}
data[0].PlaceOrderType = "cancel"
_, err = k.FuturesBatchOrder(context.Background(), data)
if err != nil {
t.Error(err)
}