forked from urdt/ussd
updated tests
This commit is contained in:
parent
b2fb9faf6c
commit
f378f15422
@ -1415,17 +1415,13 @@ func TestValidateAmount(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
input []byte
|
||||
publicKey []byte
|
||||
activeSym []byte
|
||||
activeBal []byte
|
||||
balance string
|
||||
expectedResult resource.Result
|
||||
}{
|
||||
{
|
||||
name: "Test with valid amount and active symbol",
|
||||
name: "Test with valid amount",
|
||||
input: []byte("0.001"),
|
||||
publicKey: []byte("0xrqeqrequuq"),
|
||||
activeSym: []byte("CELO"),
|
||||
activeBal: []byte("0.003"),
|
||||
expectedResult: resource.Result{
|
||||
Content: "0.001",
|
||||
@ -1434,8 +1430,6 @@ func TestValidateAmount(t *testing.T) {
|
||||
{
|
||||
name: "Test with amount larger than active balance",
|
||||
input: []byte("0.02"),
|
||||
publicKey: []byte("0xrqeqrequuq"),
|
||||
activeSym: []byte("CELO"),
|
||||
activeBal: []byte("0.003"),
|
||||
expectedResult: resource.Result{
|
||||
FlagSet: []uint32{flag_invalid_amount},
|
||||
@ -1445,37 +1439,18 @@ func TestValidateAmount(t *testing.T) {
|
||||
{
|
||||
name: "Test with invalid amount format",
|
||||
input: []byte("0.02ms"),
|
||||
publicKey: []byte("0xrqeqrequuq"),
|
||||
balance: "0.003 CELO",
|
||||
expectedResult: resource.Result{
|
||||
FlagSet: []uint32{flag_invalid_amount},
|
||||
Content: "0.02ms",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Test fallback to current balance without active symbol",
|
||||
input: []byte("0.001"),
|
||||
publicKey: []byte("0xrqeqrequuq"),
|
||||
balance: "0.003 CELO",
|
||||
expectedResult: resource.Result{
|
||||
Content: "0.001",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
// Mock behavior for public key retrieval
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_PUBLIC_KEY).Return(tt.publicKey, nil)
|
||||
|
||||
// Mock behavior for active symbol and balance retrieval (if present)
|
||||
if len(tt.activeSym) > 0 {
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACTIVE_SYM).Return(tt.activeSym, nil)
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACTIVE_BAL).Return(tt.activeBal, nil)
|
||||
} else {
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACTIVE_SYM).Return(nil, fmt.Errorf("not found"))
|
||||
mockCreateAccountService.On("CheckBalance", string(tt.publicKey)).Return(tt.balance, nil)
|
||||
}
|
||||
// Mock behavior for active balance retrieval
|
||||
mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACTIVE_BAL).Return(tt.activeBal, nil)
|
||||
|
||||
// Mock behavior for storing the amount (if valid)
|
||||
mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_AMOUNT, tt.input).Return(nil).Maybe()
|
||||
@ -1572,15 +1547,6 @@ func TestCheckBalance(t *testing.T) {
|
||||
expectedResult: resource.Result{Content: "1.5 ETH"},
|
||||
expectError: false,
|
||||
},
|
||||
{
|
||||
name: "User without active sym",
|
||||
sessionId: "session123",
|
||||
publicKey: "0X13242618721",
|
||||
activeSym: "",
|
||||
activeBal: "",
|
||||
expectedResult: resource.Result{Content: "0.003 CELO"},
|
||||
expectError: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
@ -1593,21 +1559,12 @@ func TestCheckBalance(t *testing.T) {
|
||||
userdataStore: mockDataStore,
|
||||
accountService: mockAccountService,
|
||||
}
|
||||
|
||||
// Mock calls for public key
|
||||
mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_PUBLIC_KEY).Return([]byte(tt.publicKey), nil)
|
||||
|
||||
if tt.activeSym == "" {
|
||||
// Mock for user without active sym
|
||||
mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_ACTIVE_SYM).Return([]byte{}, db.ErrNotFound{})
|
||||
mockAccountService.On("CheckBalance", tt.publicKey).Return("0.003 CELO", nil)
|
||||
} else {
|
||||
// Mock for user with active sym
|
||||
mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_ACTIVE_SYM).Return([]byte(tt.activeSym), nil)
|
||||
mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_ACTIVE_BAL).Return([]byte(tt.activeBal), nil)
|
||||
}
|
||||
|
||||
res, err := h.CheckBalance(ctx, "check_balance", []byte("123456"))
|
||||
|
||||
// Mock for user with active sym
|
||||
mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_ACTIVE_SYM).Return([]byte(tt.activeSym), nil)
|
||||
mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_ACTIVE_BAL).Return([]byte(tt.activeBal), nil)
|
||||
|
||||
res, err := h.CheckBalance(ctx, "check_balance", []byte(""))
|
||||
|
||||
if tt.expectError {
|
||||
assert.Error(t, err)
|
||||
|
Loading…
Reference in New Issue
Block a user