loginLogic_mock_test.go 986 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package pub
  2. import (
  3. "context"
  4. "errors"
  5. "testing"
  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-0006: DB异常(非ErrNotFound)
  12. func TestLogin_Mock_FindOneByUsernameDBError(t *testing.T) {
  13. ctrl := gomock.NewController(t)
  14. defer ctrl.Finish()
  15. dbErr := errors.New("connection refused")
  16. mockUser := mocks.NewMockSysUserModel(ctrl)
  17. mockUser.EXPECT().FindOneByUsername(gomock.Any(), "testuser").Return(nil, dbErr)
  18. svcCtx := mocks.NewMockServiceContext(mocks.MockModels{
  19. User: mockUser,
  20. })
  21. svcCtx.Config.Capjs.Enable = 0
  22. captchaId := "mock_cap_" + t.Name()
  23. defaultCaptchaStore.Set(captchaId, "1234")
  24. logic := NewLoginLogic(context.Background(), svcCtx)
  25. resp, err := logic.Login(&types.LoginReq{
  26. Username: "testuser",
  27. Password: "pass123",
  28. CaptchaId: captchaId,
  29. CaptchaCode: "1234",
  30. })
  31. assert.ErrorIs(t, err, dbErr)
  32. assert.Nil(t, resp)
  33. }