errors/errors_test.go

103 lines
1.7 KiB
Go

package errors
import (
"errors"
"reflect"
"testing"
)
func TestManual(t *testing.T) {
t.Logf("default: %v\n", NewError())
}
func TestNeedExit(t *testing.T) {
type args struct {
err error
}
simpleCaseErr := NewError()
CaseNoExitErr := NewError().SetExitStatus(0)
tests := []struct {
name string
args args
want ErrorWithStatus
want1 bool
}{
{
name: "simple",
args: args{
err: simpleCaseErr,
},
want: simpleCaseErr,
want1: true,
},
{
name: "nil input",
args: args{
err: nil,
},
want: nil,
want1: false,
},
{
name: "not ErrorWithStatus",
args: args{
err: errors.New("test"),
},
want: nil,
want1: false,
},
{
name: "error but no exit",
args: args{
err: CaseNoExitErr,
},
want: CaseNoExitErr,
want1: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, got1 := NeedExit(tt.args.err)
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("NeedExit() got = %v, want %v", got, tt.want)
}
if got1 != tt.want1 {
t.Errorf("NeedExit() got1 = %v, want %v", got1, tt.want1)
}
})
}
}
func TestNewErrorWithFrames(t *testing.T) {
type args struct {
err error
}
simplecase := errors.New("test")
tests := []struct {
name string
args args
want ErrorWithStatus
}{
// TODO: Add test cases.
{
name: "simple",
args: args{
err: simplecase,
},
want: NewErrorWithFrames(simplecase),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := NewErrorWithFrames(tt.args.err); !reflect.DeepEqual(got, tt.want) {
t.Errorf("NewErrorWithFrames() = %v, want %v", got, tt.want)
} else {
t.Log("check", got)
}
})
}
}