github.com/grafana/pyroscope@v1.18.0/pkg/util/recovery_test.go (about) 1 package util 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "connectrpc.com/connect" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func Test_onPanic(t *testing.T) { 13 expectedError := fmt.Errorf("internal: test") 14 15 t.Run("WrapUnary", func(t *testing.T) { 16 resp, err := RecoveryInterceptor.WrapUnary(func(context.Context, connect.AnyRequest) (connect.AnyResponse, error) { 17 panic("test") 18 })(context.Background(), nil) 19 assert.Error(t, expectedError, err) 20 assert.Nil(t, resp) 21 }) 22 23 t.Run("WrapStreamingHandler", func(t *testing.T) { 24 err := RecoveryInterceptor.WrapStreamingHandler(func(context.Context, connect.StreamingHandlerConn) error { 25 panic("test") 26 })(context.Background(), nil) 27 assert.Error(t, expectedError, err) 28 }) 29 }