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
|
//go:build !integration
// +build !integration
package helpers
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
)
func TestDoRetry(t *testing.T) {
cases := []struct {
name string
err error
expectedCount int
}{
{
name: "Error is of type retryableErr",
err: retryableErr{err: errors.New("error")},
expectedCount: 4,
},
{
name: "Error is not type of retryableErr",
err: errors.New("error"),
expectedCount: 1,
},
{
name: "Error is nil",
err: nil,
expectedCount: 1,
},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
r := retryHelper{
Retry: 3,
}
retryCount := 0
err := r.doRetry(func(_ int) error {
retryCount++
return c.err
})
assert.Equal(t, c.err, err)
assert.Equal(t, c.expectedCount, retryCount)
})
}
}
|