userListLogic_mock_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package user
  2. import (
  3. "errors"
  4. "testing"
  5. "perms-system-server/internal/testutil/ctxhelper"
  6. "perms-system-server/internal/testutil/mocks"
  7. "perms-system-server/internal/types"
  8. "github.com/stretchr/testify/assert"
  9. "go.uber.org/mock/gomock"
  10. )
  11. // TC-0180: FindListByProductMembers DB 异常时,UserList 透传错误。
  12. // 注:-G 修复合并了成员类型查询到 FindListByProductMembers,原先的 FindMapByProductCodeUserIds
  13. // 二次查询路径已被移除,因此本用例调整为验证新的一次性 JOIN 查询失败分支。
  14. func TestUserList_Mock_FindMapError(t *testing.T) {
  15. ctrl := gomock.NewController(t)
  16. defer ctrl.Finish()
  17. dbErr := errors.New("db error")
  18. mockUser := mocks.NewMockSysUserModel(ctrl)
  19. mockUser.EXPECT().FindListByProductMembers(gomock.Any(), "pc", int64(1), int64(20)).
  20. Return(nil, nil, int64(0), dbErr)
  21. svcCtx := mocks.NewMockServiceContext(mocks.MockModels{
  22. User: mockUser,
  23. })
  24. logic := NewUserListLogic(ctxhelper.SuperAdminCtx(), svcCtx)
  25. resp, err := logic.UserList(&types.UserListReq{
  26. ProductCode: "pc",
  27. Page: 1,
  28. PageSize: 20,
  29. })
  30. assert.Error(t, err)
  31. assert.ErrorIs(t, err, dbErr)
  32. assert.Nil(t, resp)
  33. }