mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
multi: surface server swap initiation grpc error codes
Formatting our error was stifling any grpc error returned by the server. Instead, we bubble up our grpc error, setting an unknown code if the server did not specifically return an error code.
This commit is contained in:
parent
e7ee29bd83
commit
d1c26a20da
5 changed files with 59 additions and 8 deletions
|
|
@ -17,6 +17,8 @@ import (
|
|||
"github.com/lightningnetwork/lnd/lnrpc"
|
||||
"github.com/lightningnetwork/lnd/lntypes"
|
||||
"github.com/stretchr/testify/require"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
@ -372,3 +374,39 @@ func testSuccess(ctx *testContext, amt btcutil.Amount, hash lntypes.Hash,
|
|||
|
||||
ctx.finish()
|
||||
}
|
||||
|
||||
// TestWrapGrpcError tests grpc error wrapping in the case where a grpc error
|
||||
// code is present, and when it is absent.
|
||||
func TestWrapGrpcError(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
original error
|
||||
expectedCode codes.Code
|
||||
}{
|
||||
{
|
||||
name: "out of range error",
|
||||
original: status.Error(
|
||||
codes.OutOfRange, "err string",
|
||||
),
|
||||
expectedCode: codes.OutOfRange,
|
||||
},
|
||||
{
|
||||
name: "no grpc code",
|
||||
original: errors.New("no error code"),
|
||||
expectedCode: codes.Unknown,
|
||||
},
|
||||
}
|
||||
|
||||
for _, testCase := range tests {
|
||||
testCase := testCase
|
||||
|
||||
t.Run(testCase.name, func(t *testing.T) {
|
||||
err := wrapGrpcError("", testCase.original)
|
||||
require.Error(t, err, "test only expects errors")
|
||||
|
||||
status, ok := status.FromError(err)
|
||||
require.True(t, ok, "test expects grpc code")
|
||||
require.Equal(t, testCase.expectedCode, status.Code())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue