74 lines
1.9 KiB
Go
74 lines
1.9 KiB
Go
// Copyright 2019 Dolthub, Inc.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package errhand
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestIndent(t *testing.T) {
|
|
tests := []struct {
|
|
toIndent string
|
|
expected string
|
|
}{
|
|
{"", "\t"},
|
|
{"one", "\tone"},
|
|
{"one\ntwo\nthree", "\tone\n\ttwo\n\tthree"},
|
|
{"one\n\n\tthree", "\tone\n\t\n\t\tthree"},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
result := indent(test.toIndent, "\t")
|
|
|
|
if result != test.expected {
|
|
t.Error(test.toIndent, "returned:", result, "expected:", test.expected)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestDError(t *testing.T) {
|
|
rootCause := BuildDError("This is test %d of %f", 1, 1.0).
|
|
AddDetails("The %[1]s that happened happened because of %[1]s", "stuff").
|
|
AddDetails("details 3").
|
|
Build()
|
|
|
|
derr := BuildDError("More Badness occurred.").AddDetails("details 1").AddDetails("details 2").AddCause(rootCause).Build()
|
|
derr = BuildDError("Badness occurred.").AddDetails("details 0").AddCause(derr).Build()
|
|
|
|
t.Log(derr.Error())
|
|
t.Log(derr.Verbose())
|
|
}
|
|
|
|
func TestBuildIf(t *testing.T) {
|
|
derr := BuildIf(nil, "doesn't matter %s", "something").
|
|
AddDetails("details").
|
|
AddCause(nil).
|
|
Build()
|
|
|
|
if derr != nil {
|
|
t.Fatal("Should not build a display error if err is nil")
|
|
}
|
|
|
|
derr2 := BuildIf(errors.New("valid"), "doesn't matter %s", "something").
|
|
AddDetails("details").
|
|
AddCause(nil).
|
|
Build()
|
|
|
|
if derr2 == nil {
|
|
t.Fatal("Should have built a valid display error.")
|
|
}
|
|
}
|