src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/diag/show_error_test.go (about)

     1  package diag
     2  
     3  import (
     4  	"errors"
     5  	"strings"
     6  	"testing"
     7  )
     8  
     9  type showerError struct{}
    10  
    11  func (showerError) Error() string { return "error" }
    12  
    13  func (showerError) Show(_ string) string { return "show" }
    14  
    15  var showErrorTests = []struct {
    16  	name    string
    17  	err     error
    18  	wantBuf string
    19  }{
    20  	{"A Shower error", showerError{}, "show\n"},
    21  	{"A errors.New error", errors.New("ERROR"), "\033[31;1mERROR\033[m\n"},
    22  }
    23  
    24  func TestShowError(t *testing.T) {
    25  	for _, test := range showErrorTests {
    26  		t.Run(test.name, func(t *testing.T) {
    27  			sb := &strings.Builder{}
    28  			ShowError(sb, test.err)
    29  			if sb.String() != test.wantBuf {
    30  				t.Errorf("Wrote %q, want %q", sb.String(), test.wantBuf)
    31  			}
    32  		})
    33  	}
    34  }