| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package member
- import (
- "context"
- "errors"
- "testing"
- "perms-system-server/internal/model/productmember"
- "perms-system-server/internal/testutil/ctxhelper"
- "perms-system-server/internal/testutil/mocks"
- "perms-system-server/internal/types"
- "github.com/stretchr/testify/assert"
- "github.com/zeromicro/go-zero/core/stores/sqlx"
- "go.uber.org/mock/gomock"
- )
- // TC-0229: 事务回滚
- func TestRemoveMember_Mock_UserPermDeleteFail(t *testing.T) {
- ctrl := gomock.NewController(t)
- defer ctrl.Finish()
- dbErr := errors.New("db error")
- mockPM := mocks.NewMockSysProductMemberModel(ctrl)
- mockPM.EXPECT().FindOne(gomock.Any(), int64(1)).
- Return(&productmember.SysProductMember{
- Id: 1,
- UserId: 10,
- ProductCode: "pc",
- }, nil)
- mockPM.EXPECT().TransactCtx(gomock.Any(), gomock.Any()).
- DoAndReturn(func(ctx context.Context, fn func(context.Context, sqlx.Session) error) error {
- return fn(ctx, nil)
- })
- mockUR := mocks.NewMockSysUserRoleModel(ctrl)
- mockUR.EXPECT().DeleteByUserIdForProductTx(gomock.Any(), nil, int64(10), "pc").Return(nil)
- mockUP := mocks.NewMockSysUserPermModel(ctrl)
- mockUP.EXPECT().DeleteByUserIdForProductTx(gomock.Any(), nil, int64(10), "pc").Return(dbErr)
- svcCtx := mocks.NewMockServiceContext(mocks.MockModels{
- ProductMember: mockPM,
- UserRole: mockUR,
- UserPerm: mockUP,
- })
- logic := NewRemoveMemberLogic(ctxhelper.SuperAdminCtx(), svcCtx)
- err := logic.RemoveMember(&types.RemoveMemberReq{Id: 1})
- assert.Error(t, err)
- assert.ErrorIs(t, err, dbErr)
- }
|