package user import ( "errors" "testing" userModel "perms-system-server/internal/model/user" "perms-system-server/internal/testutil/ctxhelper" "perms-system-server/internal/testutil/mocks" "perms-system-server/internal/types" "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" ) // TC-0180: 批量查询DB异常 func TestUserList_Mock_FindMapError(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() dbErr := errors.New("db error") mockUser := mocks.NewMockSysUserModel(ctrl) mockUser.EXPECT().FindListByProductMembers(gomock.Any(), "pc", int64(1), int64(20)). Return([]*userModel.SysUser{ {Id: 1, Username: "u1"}, {Id: 2, Username: "u2"}, }, int64(2), nil) mockPM := mocks.NewMockSysProductMemberModel(ctrl) mockPM.EXPECT().FindMapByProductCodeUserIds(gomock.Any(), "pc", []int64{1, 2}). Return(nil, dbErr) svcCtx := mocks.NewMockServiceContext(mocks.MockModels{ User: mockUser, ProductMember: mockPM, }) logic := NewUserListLogic(ctxhelper.SuperAdminCtx(), svcCtx) resp, err := logic.UserList(&types.UserListReq{ ProductCode: "pc", Page: 1, PageSize: 20, }) assert.Error(t, err) assert.ErrorIs(t, err, dbErr) assert.Nil(t, resp) }