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  }