loginLogic_mock_test.go 817 B

12345678910111213141516171819202122232425262728293031323334353637
  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. logic := NewLoginLogic(context.Background(), svcCtx)
  22. resp, err := logic.Login(&types.LoginReq{
  23. Username: "testuser",
  24. Password: "pass123",
  25. })
  26. assert.ErrorIs(t, err, dbErr)
  27. assert.Nil(t, resp)
  28. }