29 lines
942 B
Go
29 lines
942 B
Go
package payments
|
|
|
|
import (
|
|
"testing"
|
|
|
|
customer "git.sendico.io/tech/sxchnge/product/customers/model"
|
|
"github.com/stretchr/testify/require"
|
|
"go.mongodb.org/mongo-driver/v2/bson"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func TestSignupAndWalletReadEnsureCustomerCurrencyAccounts(t *testing.T) {
|
|
a := &customer.Account{}
|
|
a.ID = bson.NewObjectID()
|
|
p := &provider{namespace: "provider"}
|
|
s := &Service{Provider: p, Identity: identity{}, Logger: zap.NewNop(), Factors: &factors{}, Store: &memoryStore{records: map[bson.ObjectID]Record{}}}
|
|
require.NoError(t, s.Ensure(t.Context(), a))
|
|
require.Equal(t, "subject", p.setupSubject)
|
|
snapshot, err := s.Fetch(t.Context(), a)
|
|
require.NoError(t, err)
|
|
require.Len(t, snapshot.Accounts, 1)
|
|
require.Equal(t, 2, p.setupCalls)
|
|
p.setupErr = Unavailable
|
|
_, err = s.Fetch(t.Context(), a)
|
|
require.ErrorIs(t, err, Unavailable)
|
|
require.Error(t, s.Ensure(t.Context(), a))
|
|
require.Error(t, s.Ensure(t.Context(), nil))
|
|
}
|