package xtwirp_test import ( "testing" "github.com/stretchr/testify/require" "github.com/twitchtv/twirp" "google.golang.org/genproto/googleapis/rpc/errdetails" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "github.com/livekit/protocol/utils/xtwirp" ) func TestStatus(t *testing.T) { st := status.New(codes.FailedPrecondition, "test") st, err := st.WithDetails(&errdetails.ErrorInfo{Reason: "reason"}) require.NoError(t, err) e := twirp.NewError(twirp.InvalidArgument, "twirp") e = xtwirp.WithDetailsFromStatus(e, st) got, ok := xtwirp.StatusFromError(e) require.True(t, ok) require.Equal(t, st, got) require.Equal(t, st.Details(), got.Details()) }