2026-04-25 13:21:39 +08:00

38 lines
1.4 KiB
Go

package grpc_test
import (
"context"
"testing"
userv1 "hyapp/api/proto/user/v1"
"hyapp/pkg/xerr"
authservice "hyapp/services/user-service/internal/service/auth"
userservice "hyapp/services/user-service/internal/service/user"
"hyapp/services/user-service/internal/storage/memory"
grpcserver "hyapp/services/user-service/internal/transport/grpc"
)
// TestLoginPasswordErrorCarriesReason 验证 transport 层把领域错误转换为 ErrorInfo.reason。
func TestLoginPasswordErrorCarriesReason(t *testing.T) {
server := grpcserver.NewServer(authservice.New(authservice.Config{}), userservice.New(memory.NewRepository()))
_, err := server.LoginPassword(context.Background(), &userv1.LoginPasswordRequest{
Meta: &userv1.RequestMeta{DeviceId: "ios"},
})
if got := xerr.ReasonFromGRPC(err); got != xerr.InvalidArgument {
t.Fatalf("reason mismatch: got %s", got)
}
}
// TestResolveDisplayUserIDErrorCarriesReason 验证短号接口也使用 gRPC ErrorInfo.reason。
func TestResolveDisplayUserIDErrorCarriesReason(t *testing.T) {
server := grpcserver.NewServer(authservice.New(authservice.Config{}), userservice.New(memory.NewRepository()))
_, err := server.ResolveDisplayUserID(context.Background(), &userv1.ResolveDisplayUserIDRequest{
DisplayUserId: "bad",
})
if got := xerr.ReasonFromGRPC(err); got != xerr.DisplayUserIDInvalid {
t.Fatalf("reason mismatch: got %s", got)
}
}