Files
cms-server/data/kyc_test.go
Asai Neko 210b8b08ce
All checks were successful
Server Check Build (NixCN CMS) TeamCity build finished
Add test for all components
Signed-off-by: Asai Neko <sugar@sne.moe>
2026-03-26 18:19:26 +08:00

119 lines
2.9 KiB
Go

package data_test
import (
"context"
"testing"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"nixcn-cms/data"
"nixcn-cms/testutil"
)
func TestKycCreate(t *testing.T) {
testutil.Setup(t)
ctx := context.Background()
userId := uuid.New()
k := data.NewKyc(
data.WithKycUserId(userId),
data.WithKycType("cnrid"),
data.WithKycInfo("encrypted-info"),
)
kycId, err := k.Create(ctx)
require.NoError(t, err)
assert.NotEqual(t, uuid.Nil, kycId)
}
func TestKycGetByKycId(t *testing.T) {
testutil.Setup(t)
ctx := context.Background()
userId := uuid.New()
k := data.NewKyc(data.WithKycUserId(userId), data.WithKycType("cnrid"), data.WithKycInfo("info"))
kycId, err := k.Create(ctx)
require.NoError(t, err)
got, err := new(data.Kyc).GetByKycId(ctx, &kycId)
require.NoError(t, err)
require.NotNil(t, got)
assert.Equal(t, userId, got.UserId)
}
func TestKycGetByKycIdNotFound(t *testing.T) {
testutil.Setup(t)
ctx := context.Background()
missing := uuid.New()
got, err := new(data.Kyc).GetByKycId(ctx, &missing)
require.NoError(t, err)
assert.Nil(t, got)
}
func TestKycListByUserId(t *testing.T) {
testutil.Setup(t)
ctx := context.Background()
userId := uuid.New()
for _, typ := range []string{"cnrid", "passport"} {
k := data.NewKyc(data.WithKycUserId(userId), data.WithKycType(typ), data.WithKycInfo("info"))
_, err := k.Create(ctx)
require.NoError(t, err)
}
list, err := new(data.Kyc).ListByUserId(ctx, &userId)
require.NoError(t, err)
assert.Len(t, list, 2)
}
func TestKycPatchByKycId(t *testing.T) {
testutil.Setup(t)
ctx := context.Background()
userId := uuid.New()
k := data.NewKyc(data.WithKycUserId(userId), data.WithKycType("cnrid"), data.WithKycInfo("original"))
kycId, err := k.Create(ctx)
require.NoError(t, err)
require.NoError(t, new(data.Kyc).PatchByKycId(ctx, &kycId, data.WithKycInfo("updated")))
got, err := new(data.Kyc).GetByKycId(ctx, &kycId)
require.NoError(t, err)
assert.Equal(t, "updated", got.KycInfo)
}
func TestKycDeleteByKycID(t *testing.T) {
testutil.Setup(t)
ctx := context.Background()
userId := uuid.New()
k := data.NewKyc(data.WithKycUserId(userId), data.WithKycType("cnrid"), data.WithKycInfo("info"))
kycId, err := k.Create(ctx)
require.NoError(t, err)
require.NoError(t, new(data.Kyc).DeleteByKycID(ctx, &kycId))
got, err := new(data.Kyc).GetByKycId(ctx, &kycId)
require.NoError(t, err)
assert.Nil(t, got)
}
func TestKycDeleteAllByUserId(t *testing.T) {
testutil.Setup(t)
ctx := context.Background()
userId := uuid.New()
for i := 0; i < 3; i++ {
k := data.NewKyc(data.WithKycUserId(userId), data.WithKycType("cnrid"), data.WithKycInfo("info"))
_, err := k.Create(ctx)
require.NoError(t, err)
}
require.NoError(t, new(data.Kyc).DeleteAllByUserId(ctx, &userId))
list, err := new(data.Kyc).ListByUserId(ctx, &userId)
require.NoError(t, err)
assert.Empty(t, list)
}