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  }