github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/network/p2p/conduit/conduit_test.go (about) 1 package conduit_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/go-multierror" 8 "github.com/stretchr/testify/require" 9 10 "github.com/onflow/flow-go/network" 11 ) 12 13 func TestWrappedByMultiError(t *testing.T) { 14 var errs *multierror.Error 15 16 err := network.NewPeerUnreachableError(fmt.Errorf("unreachable")) 17 errs = multierror.Append(errs, fmt.Errorf("could not send req: %w", err)) 18 19 require.True(t, network.IsPeerUnreachableError(err)) // Pass 20 require.True(t, network.IsPeerUnreachableError(errs.WrappedErrors()[0])) // Pass 21 } 22 23 func TestNestedWrappedMultiError(t *testing.T) { 24 var innerError *multierror.Error 25 innerError = multierror.Append(innerError, fmt.Errorf("inner error")) 26 innerError = multierror.Append(innerError, fmt.Errorf("inner error")) 27 innerError = multierror.Append(innerError, fmt.Errorf("inner error")) 28 29 err := network.NewPeerUnreachableError(fmt.Errorf("inner: %w", innerError)) 30 require.True(t, network.IsPeerUnreachableError(err)) 31 var outerError *multierror.Error 32 outerError = multierror.Append(outerError, fmt.Errorf("inner: %w", err)) 33 require.True(t, network.AllPeerUnreachableError(outerError.WrappedErrors()...)) 34 }