Skip to content

Commit 799ecab

Browse files
committed
Add unit tests for pkg/utils/errors
1 parent 5cda731 commit 799ecab

File tree

3 files changed

+70
-1
lines changed

3 files changed

+70
-1
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
Copyright 2025 Tim Ebert.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package errors_test
18+
19+
import (
20+
"testing"
21+
22+
. "github.com/onsi/ginkgo/v2"
23+
. "github.com/onsi/gomega"
24+
)
25+
26+
func TestErrors(t *testing.T) {
27+
RegisterFailHandler(Fail)
28+
RunSpecs(t, "Errors Utils Suite")
29+
}

pkg/utils/errors/multi.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
)
2323

2424
// FormatErrors is like multierror.ListFormatFunc without the noisy newlines and tabs.
25-
// It also simplies the format for a single error.
25+
// It also simplifies the format for a single error.
2626
func FormatErrors(es []error) string {
2727
if len(es) == 1 {
2828
return es[0].Error()

pkg/utils/errors/multi_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
Copyright 2025 Tim Ebert.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package errors_test
18+
19+
import (
20+
"fmt"
21+
22+
. "github.com/onsi/ginkgo/v2"
23+
. "github.com/onsi/gomega"
24+
25+
. "github.com/timebertt/kubernetes-controller-sharding/pkg/utils/errors"
26+
)
27+
28+
var _ = Describe("FormatErrors", func() {
29+
It("should return the single error", func() {
30+
Expect(FormatErrors([]error{fmt.Errorf("foo")})).To(Equal("foo"))
31+
})
32+
33+
It("should return the error count and comma separated error list", func() {
34+
Expect(
35+
FormatErrors([]error{fmt.Errorf("foo"), fmt.Errorf("bar")}),
36+
).To(
37+
Equal("2 errors occurred: foo, bar"),
38+
)
39+
})
40+
})

0 commit comments

Comments
 (0)