mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-07 15:11:03 +00:00
GHA: Add additional checks for common issues (#1922)
* GHA, tests: Add additional checks for common issues These checks include: - Ensuring that all testify funcs use their formatted variants (e.g., `assert.Equalf(t, expected, actual)` instead of `assert.Equal(t, expected, actual)`). - Replacing `%s` with %q - Enforcing consistent usage of should/must wording for testify assert/require messages * Add support for checking backticked string format specifiers and fix issues * tests: Fix error comparisons * tests: Replace errors.Is(err, nil) usage with testify and automate check * refactor: Rename ExtractPort to ExtractPortOrDefault * tests: Replace assert with require for error handling in multiple test files * tests: Replace assert with require for error handling and improve assertions in data tests * tests: Fix typo in assertion message for StreamVol test * OKX: Fix GetOpenInterestAndVolumeStrike test with instrument selection and improved assertions * OKX: Revert intentional error check * Improve error message for expiry time check in GetOpenInterestAndVolumeStrike test
This commit is contained in:
@@ -6,6 +6,8 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/thrasher-corp/gocryptotrader/currency"
|
||||
)
|
||||
|
||||
@@ -34,9 +36,7 @@ func TestWhaleBomb(t *testing.T) {
|
||||
}
|
||||
|
||||
result, err := b.WhaleBomb(7001, true) // <- This price should not be wiped out on the book.
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 7000 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 7000)
|
||||
@@ -55,9 +55,7 @@ func TestWhaleBomb(t *testing.T) {
|
||||
}
|
||||
|
||||
result, err = b.WhaleBomb(7000.5, true) // <- Slot between prices will lift to next ask tranche
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v', expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if result.Amount != 7000 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 7000)
|
||||
@@ -76,18 +74,14 @@ func TestWhaleBomb(t *testing.T) {
|
||||
}
|
||||
|
||||
result, err = b.WhaleBomb(7002, true) // <- exceed available quotations
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if !strings.Contains(result.Status, fullLiquidityUsageWarning) {
|
||||
t.Fatal("expected status to contain liquidity warning")
|
||||
}
|
||||
|
||||
result, err = b.WhaleBomb(7000, true) // <- Book should not move
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 0 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 0)
|
||||
@@ -116,9 +110,7 @@ func TestWhaleBomb(t *testing.T) {
|
||||
}
|
||||
|
||||
result, err = b.WhaleBomb(6998, false) // <- This price should not be wiped out on the book.
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 1 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 1)
|
||||
@@ -137,9 +129,7 @@ func TestWhaleBomb(t *testing.T) {
|
||||
}
|
||||
|
||||
result, err = b.WhaleBomb(6998.5, false) // <- Slot between prices will drop to next bid tranche
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v', expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if result.Amount != 1 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 1)
|
||||
@@ -158,18 +148,14 @@ func TestWhaleBomb(t *testing.T) {
|
||||
}
|
||||
|
||||
result, err = b.WhaleBomb(6997, false) // <- exceed available quotations
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if !strings.Contains(result.Status, fullLiquidityUsageWarning) {
|
||||
t.Fatal("expected status to contain liquidity warning")
|
||||
}
|
||||
|
||||
result, err = b.WhaleBomb(6999, false) // <- Book should not move
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 0 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 0)
|
||||
@@ -210,9 +196,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Full liquidity used
|
||||
result, err := b.SimulateOrder(21002, true)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 3 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 3)
|
||||
@@ -236,9 +220,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Exceed full liquidity used
|
||||
result, err = b.SimulateOrder(21003, true)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 3 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 3)
|
||||
@@ -262,9 +244,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// First tranche
|
||||
result, err = b.SimulateOrder(7000, true)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 1 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 1)
|
||||
@@ -288,9 +268,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Half of first tranch
|
||||
result, err = b.SimulateOrder(3500, true)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != .5 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, .5)
|
||||
@@ -318,9 +296,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Half of second tranche
|
||||
result, err = b.SimulateOrder(14001, true)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 2 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 2)
|
||||
@@ -362,9 +338,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Full liquidity used
|
||||
result, err = b.SimulateOrder(3, false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 20995 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 20995)
|
||||
@@ -388,9 +362,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Exceed full liquidity used
|
||||
result, err = b.SimulateOrder(3.1, false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 20995 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 20995)
|
||||
@@ -414,9 +386,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// First tranche
|
||||
result, err = b.SimulateOrder(1, false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 6999 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 6999)
|
||||
@@ -440,9 +410,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Half of first tranch
|
||||
result, err = b.SimulateOrder(.5, false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 3499.5 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 3499.5)
|
||||
@@ -470,9 +438,7 @@ func TestSimulateOrder(t *testing.T) {
|
||||
|
||||
// Half of second tranche
|
||||
result, err = b.SimulateOrder(2, false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if result.Amount != 13997 {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", result.Amount, 13997)
|
||||
|
||||
@@ -91,7 +91,7 @@ func TestRetrieve(t *testing.T) {
|
||||
mirrored := reflect.Indirect(reflect.ValueOf(d.options))
|
||||
for n := range mirrored.NumField() {
|
||||
structVal := mirrored.Field(n)
|
||||
assert.Falsef(t, structVal.IsZero(), "struct field '%s' not tested", mirrored.Type().Field(n).Name)
|
||||
assert.Falsef(t, structVal.IsZero(), "struct field %q not tested", mirrored.Type().Field(n).Name)
|
||||
}
|
||||
|
||||
ob, err := d.Retrieve()
|
||||
@@ -743,7 +743,7 @@ func TestMovementMethods(t *testing.T) {
|
||||
assert.InDeltaf(t, field.Float(), expect.Float(), accuracy10dp, "sub test %d movement %s should be correct", i, meta.Type().Field(j).Name)
|
||||
}
|
||||
}
|
||||
assert.Equal(t, subT.expect.FullBookSideConsumed, move.FullBookSideConsumed, "sub test %d movement FullBookSideConsumed should be correct", i)
|
||||
assert.Equalf(t, subT.expect.FullBookSideConsumed, move.FullBookSideConsumed, "sub test %d movement FullBookSideConsumed should be correct", i)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -694,7 +694,5 @@ func TestCheckAlignment(t *testing.T) {
|
||||
itemWithFunding[0].StrAmount = "1337.0000000"
|
||||
itemWithFunding[0].StrPrice = "1337.0000000"
|
||||
err = checkAlignment(itemWithFunding, true, true, false, true, dsc, "Binance")
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: %v but expected: %v", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var ask = Tranches{
|
||||
@@ -326,9 +327,7 @@ func TestUpdateByID(t *testing.T) {
|
||||
err = a.updateByID(Tranches{ // Simulate Bitmex updating
|
||||
{Price: 0, Amount: 1337, ID: 3},
|
||||
})
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("expecting %v but received %v", nil, err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if got := a.retrieve(2); len(got) != 2 || got[1].Price == 0 {
|
||||
t.Fatal("price should not be replaced with zero")
|
||||
@@ -1830,18 +1829,14 @@ func TestGetHeadPrice(t *testing.T) {
|
||||
}
|
||||
|
||||
val, err := depth.bidTranches.getHeadPriceNoLock()
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if val != 1336 {
|
||||
t.Fatal("unexpected value")
|
||||
}
|
||||
|
||||
val, err = depth.askTranches.getHeadPriceNoLock()
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if val != 1337 {
|
||||
t.Fatal("unexpected value", val)
|
||||
|
||||
Reference in New Issue
Block a user