54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package graphql
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestOctopusGraphQLAccountFiltration(t *testing.T) {
|
|
validAccountNumber := "A-AAAAAAAA"
|
|
var noAccounts []krakenAccount
|
|
oneAccount := []krakenAccount{
|
|
{Number: validAccountNumber},
|
|
}
|
|
multipleAccounts := []krakenAccount{
|
|
{Number: validAccountNumber},
|
|
{Number: "X-XXXXXXXX"},
|
|
{Number: "Y-YYYYYYYY"},
|
|
{Number: "Z-ZZZZZZZZ"},
|
|
}
|
|
|
|
var accNum string
|
|
|
|
// No accounts (invalid state)
|
|
_, err := filterAccount(noAccounts, "")
|
|
require.ErrorIs(t, err, ErrNoAccounts)
|
|
|
|
// One account, no filtration
|
|
accNum, err = filterAccount(oneAccount, "")
|
|
require.NoError(t, err)
|
|
require.Equal(t, accNum, validAccountNumber)
|
|
|
|
// One account, valid filtration
|
|
accNum, err = filterAccount(oneAccount, validAccountNumber)
|
|
require.NoError(t, err)
|
|
require.Equal(t, accNum, validAccountNumber)
|
|
|
|
// One account, invalid filtration (invalid state)
|
|
_, err = filterAccount(oneAccount, "0-00000000")
|
|
require.ErrorIs(t, err, ErrAccountNotFound)
|
|
|
|
// Multiple accounts, no filtration (invalid state)
|
|
_, err = filterAccount(multipleAccounts, "")
|
|
require.ErrorIs(t, err, ErrMultipleAccounts)
|
|
|
|
// Multiple accounts, valid filtration
|
|
accNum, err = filterAccount(multipleAccounts, validAccountNumber)
|
|
require.NoError(t, err)
|
|
require.Equal(t, accNum, validAccountNumber)
|
|
|
|
// Multiple accounts, invalid filtration (invalid state)
|
|
_, err = filterAccount(multipleAccounts, "0-00000000")
|
|
require.ErrorIs(t, err, ErrAccountNotFound)
|
|
}
|