github.com/livekit/protocol@v1.39.3/utils/xtwirp/errors_test.go (about) 1 package xtwirp_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 "github.com/twitchtv/twirp" 8 "google.golang.org/genproto/googleapis/rpc/errdetails" 9 "google.golang.org/grpc/codes" 10 "google.golang.org/grpc/status" 11 12 "github.com/livekit/protocol/utils/xtwirp" 13 ) 14 15 func TestStatus(t *testing.T) { 16 st := status.New(codes.FailedPrecondition, "test") 17 st, err := st.WithDetails(&errdetails.ErrorInfo{Reason: "reason"}) 18 require.NoError(t, err) 19 20 e := twirp.NewError(twirp.InvalidArgument, "twirp") 21 e = xtwirp.WithDetailsFromStatus(e, st) 22 23 got, ok := xtwirp.StatusFromError(e) 24 require.True(t, ok) 25 require.Equal(t, st, got) 26 require.Equal(t, st.Details(), got.Details()) 27 }