forked from TencentBlueKing/gopkg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
errorx_test.go
94 lines (70 loc) · 2.96 KB
/
errorx_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
* TencentBlueKing is pleased to support the open source community by making
* 蓝鲸智云-gopkg available.
* Copyright (C) 2017-2022 THL A29 Limited, a Tencent company. All rights reserved.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://opensource.org/licenses/MIT
* 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 errorx
import (
"errors"
. "github.com/onsi/ginkgo/v2"
"github.com/stretchr/testify/assert"
)
var _ = Describe("Errorx", func() {
Describe("makeMessage", func() {
It("raw error", func() {
err := errors.New("it's a raw error")
msg := makeMessage(err, "Test", "makeMessage", "wrapped-message")
assert.Equal(GinkgoT(), "[Test:makeMessage] wrapped-message => [Raw:Error] it's a raw error", msg)
})
It("errorx.Error", func() {
err := errors.New("it's a raw error")
errx := Errorx{
message: "wrap errorx message",
err: err,
}
msg := makeMessage(errx, "Test", "makeMessage", "wrapped-message")
assert.Equal(GinkgoT(), "[Test:makeMessage] wrapped-message => wrap errorx message", msg)
})
It("Wrap nil", func() {
var err error
assert.Nil(GinkgoT(), Wrap(err, "Test", "Wrap", "wrapped-message"))
})
It("Wrap", func() {
err := errors.New("it's a raw error")
e := Wrap(err, "Test", "Wrap", "wrapped-message")
assert.Equal(GinkgoT(), "[Test:Wrap] wrapped-message => [Raw:Error] it's a raw error", e.Error())
})
It("Wrap-Wrap", func() {
err := errors.New("it's a raw error")
e := Wrap(err, "Test", "Wrap", "wrapped-message")
e2 := Wrap(e, "Test2", "Wrap2", "wrapped-message-2")
assert.Equal(GinkgoT(), "[Test2:Wrap2] wrapped-message-2 => [Test:Wrap] wrapped-message => [Raw:Error] it's a raw error", e2.Error())
})
It("Wrapf nil", func() {
var err error
assert.Nil(GinkgoT(), Wrapf(err, "Test", "Wrap", "wrapped-message %d", 100))
})
It("Wrapf", func() {
err := errors.New("it's a raw error")
e := Wrapf(err, "Test", "Wrap", "wrapped-message %d", 100)
assert.Equal(GinkgoT(), "[Test:Wrap] wrapped-message 100 => [Raw:Error] it's a raw error", e.Error())
})
It("NewLayerFunctionErrorWrap", func() {
err := errors.New("it's a raw error")
f := NewLayerFunctionErrorWrap("Test", "call")
e := f(err, "hello")
assert.Equal(GinkgoT(), "[Test:call] hello => [Raw:Error] it's a raw error", e.Error())
})
It("NewLayerFunctionErrorWrapf", func() {
err := errors.New("it's a raw error")
f := NewLayerFunctionErrorWrapf("Test", "call")
e := f(err, "hello %s", "world")
assert.Equal(GinkgoT(), "[Test:call] hello world => [Raw:Error] it's a raw error", e.Error())
})
})
})