github.com/blend/go-sdk@v1.20220411.3/async/recover_test.go (about)

     1  /*
     2  
     3  Copyright (c) 2022 - Present. Blend Labs, Inc. All rights reserved
     4  Use of this source code is governed by a MIT license that can be found in the LICENSE file.
     5  
     6  */
     7  
     8  package async
     9  
    10  import (
    11  	"fmt"
    12  	"testing"
    13  
    14  	"github.com/blend/go-sdk/assert"
    15  	"github.com/blend/go-sdk/ex"
    16  )
    17  
    18  func Test_Recover(t *testing.T) {
    19  	assert := assert.New(t)
    20  
    21  	errors := make(chan error, 1)
    22  	Recover(func() error {
    23  		return fmt.Errorf("test")
    24  	}, errors)
    25  
    26  	assert.NotEmpty(errors)
    27  	assert.Equal(fmt.Errorf("test"), <-errors)
    28  
    29  	errors = make(chan error, 1)
    30  	Recover(func() error {
    31  		panic("test")
    32  	}, errors)
    33  
    34  	assert.NotEmpty(errors)
    35  	assert.Equal("test", ex.ErrClass(<-errors))
    36  }