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 }