github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/parse/error_test.go (about) 1 package parse 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/markusbkk/elvish/pkg/diag" 8 . "github.com/markusbkk/elvish/pkg/tt" 9 ) 10 11 func TestGetError(t *testing.T) { 12 parseError := makeError() 13 Test(t, Fn("GetError", GetError), Table{ 14 Args(parseError).Rets(parseError), 15 Args(errors.New("random error")).Rets((*Error)(nil)), 16 }) 17 } 18 19 var errorTests = []struct { 20 err *Error 21 indent string 22 wantError string 23 wantShow string 24 }{ 25 {makeError(), "", "no parse error", "no parse error"}, 26 // TODO: Add more complex test cases. 27 } 28 29 func TestError(t *testing.T) { 30 for _, test := range errorTests { 31 gotError := test.err.Error() 32 if gotError != test.wantError { 33 t.Errorf("got error %q, want %q", gotError, test.wantError) 34 } 35 gotShow := test.err.Show(test.indent) 36 if gotShow != test.wantShow { 37 t.Errorf("got show %q, want %q", gotShow, test.wantShow) 38 } 39 } 40 } 41 42 func makeError(entries ...*diag.Error) *Error { 43 return &Error{entries} 44 }