package pub import ( "context" "errors" "testing" "perms-system-server/internal/testutil/mocks" "perms-system-server/internal/types" "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" ) // TC-0006: DB异常(非ErrNotFound) func TestLogin_Mock_FindOneByUsernameDBError(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() dbErr := errors.New("connection refused") mockUser := mocks.NewMockSysUserModel(ctrl) mockUser.EXPECT().FindOneByUsername(gomock.Any(), "testuser").Return(nil, dbErr) svcCtx := mocks.NewMockServiceContext(mocks.MockModels{ User: mockUser, }) logic := NewLoginLogic(context.Background(), svcCtx) resp, err := logic.Login(&types.LoginReq{ Username: "testuser", Password: "pass123", }) assert.ErrorIs(t, err, dbErr) assert.Nil(t, resp) }