diff --git a/exchanges/gateio/gateio_test.go b/exchanges/gateio/gateio_test.go index 52800a88339..823d3e639f5 100644 --- a/exchanges/gateio/gateio_test.go +++ b/exchanges/gateio/gateio_test.go @@ -2851,7 +2851,30 @@ func TestGetUnifiedAccount(t *testing.T) { func TestGetSettlementCurrency(t *testing.T) { t.Parallel() - t.Error("Not implemented") + for _, tt := range []struct { + a asset.Item + p currency.Pair + exp currency.Code + err error + }{ + {asset.Futures, currency.EMPTYPAIR, currency.EMPTYCODE, asset.ErrNotSupported}, + {asset.DeliveryFutures, currency.EMPTYPAIR, currency.USDT, nil}, + {asset.DeliveryFutures, getPair(t, asset.DeliveryFutures), currency.USDT, nil}, + {asset.USDTMarginedFutures, currency.EMPTYPAIR, currency.USDT, nil}, + {asset.USDTMarginedFutures, getPair(t, asset.USDTMarginedFutures), currency.USDT, nil}, + {asset.USDTMarginedFutures, getPair(t, asset.CoinMarginedFutures), currency.EMPTYCODE, errInvalidSettlementQuote}, + {asset.CoinMarginedFutures, currency.EMPTYPAIR, currency.BTC, nil}, + {asset.CoinMarginedFutures, getPair(t, asset.CoinMarginedFutures), currency.BTC, nil}, + {asset.CoinMarginedFutures, getPair(t, asset.USDTMarginedFutures), currency.EMPTYCODE, errInvalidSettlementBase}, + } { + c, err := getSettlementCurrency(tt.a, tt.p) + if tt.err == nil { + require.NoErrorf(t, err, "getSettlementCurrency must not error for %s %s", tt.a, tt.p) + } else { + assert.ErrorIsf(t, err, tt.err, "getSettlementCurrency should return correct error for %s %s", tt.a, tt.p) + } + assert.Equalf(t, tt.exp, c, "getSettlementCurrency should return correct settlement currency for %s %s", tt.a, tt.p) + } } func TestGenerateWebsocketMessageID(t *testing.T) {