errcount: factor errcount abstraction from operations

This commit is contained in:
Nick Craig-Wood
2024-02-06 10:14:11 +00:00
parent 8f0e9f9f6b
commit 71a1bbb2be
3 changed files with 89 additions and 11 deletions

View File

@@ -0,0 +1,27 @@
package errcount
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
)
func TestErrCount(t *testing.T) {
ec := New()
assert.Equal(t, nil, ec.Err("none"))
e1 := errors.New("one")
ec.Add(e1)
err := ec.Err("stuff")
assert.True(t, errors.Is(err, e1), err)
assert.Equal(t, "stuff: one", err.Error())
e2 := errors.New("two")
ec.Add(e2)
err = ec.Err("stuff")
assert.True(t, errors.Is(err, e2), err)
assert.Equal(t, "stuff: 2 errors: last error: two", err.Error())
}