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  }