github.com/kolbycrouch/elvish@v0.14.1-0.20210614162631-215b9ac1c423/pkg/diag/multierror_test.go (about)

     1  package diag
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  )
     7  
     8  var (
     9  	err1 = errors.New("error 1")
    10  	err2 = errors.New("error 2")
    11  	err3 = errors.New("error 3")
    12  )
    13  
    14  var errorsTests = []struct {
    15  	e          error
    16  	wantString string
    17  }{
    18  	{Errors(), ""},
    19  	{MultiError{}, "no error"},
    20  	{Errors(errors.New("some error")), "some error"},
    21  	{
    22  		Errors(err1, err2),
    23  		"multiple errors: error 1; error 2",
    24  	},
    25  	{
    26  		Errors(err1, err2, err3),
    27  		"multiple errors: error 1; error 2; error 3",
    28  	},
    29  	{
    30  		Errors(err1, Errors(err2, err3)),
    31  		"multiple errors: error 1; error 2; error 3",
    32  	},
    33  	{
    34  		Errors(Errors(err1, err2), err3),
    35  		"multiple errors: error 1; error 2; error 3",
    36  	},
    37  }
    38  
    39  func TestErrors(t *testing.T) {
    40  	for _, test := range errorsTests {
    41  		if test.e == nil {
    42  			if test.wantString != "" {
    43  				t.Errorf("got nil, want %q", test.wantString)
    44  			}
    45  		} else {
    46  			gotString := test.e.Error()
    47  			if gotString != test.wantString {
    48  				t.Errorf("got %q, want %q", gotString, test.wantString)
    49  			}
    50  		}
    51  	}
    52  }