| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package operation_setting
- import (
- "testing"
- "github.com/stretchr/testify/require"
- )
- func TestParseHTTPStatusCodeRanges_CommaSeparated(t *testing.T) {
- ranges, err := ParseHTTPStatusCodeRanges("401,403,500-599")
- require.NoError(t, err)
- require.Equal(t, []StatusCodeRange{
- {Start: 401, End: 401},
- {Start: 403, End: 403},
- {Start: 500, End: 599},
- }, ranges)
- }
- func TestParseHTTPStatusCodeRanges_MergeAndNormalize(t *testing.T) {
- ranges, err := ParseHTTPStatusCodeRanges("500-505,504,401,403,402")
- require.NoError(t, err)
- require.Equal(t, []StatusCodeRange{
- {Start: 401, End: 403},
- {Start: 500, End: 505},
- }, ranges)
- }
- func TestParseHTTPStatusCodeRanges_Invalid(t *testing.T) {
- _, err := ParseHTTPStatusCodeRanges("99,600,foo,500-400,500-")
- require.Error(t, err)
- }
- func TestParseHTTPStatusCodeRanges_NoComma_IsInvalid(t *testing.T) {
- _, err := ParseHTTPStatusCodeRanges("401 403")
- require.Error(t, err)
- }
- func TestShouldDisableByStatusCode(t *testing.T) {
- orig := AutomaticDisableStatusCodeRanges
- t.Cleanup(func() { AutomaticDisableStatusCodeRanges = orig })
- AutomaticDisableStatusCodeRanges = []StatusCodeRange{
- {Start: 401, End: 403},
- {Start: 500, End: 599},
- }
- require.True(t, ShouldDisableByStatusCode(401))
- require.True(t, ShouldDisableByStatusCode(403))
- require.False(t, ShouldDisableByStatusCode(404))
- require.True(t, ShouldDisableByStatusCode(500))
- require.False(t, ShouldDisableByStatusCode(200))
- }
- func TestShouldRetryByStatusCode(t *testing.T) {
- orig := AutomaticRetryStatusCodeRanges
- t.Cleanup(func() { AutomaticRetryStatusCodeRanges = orig })
- AutomaticRetryStatusCodeRanges = []StatusCodeRange{
- {Start: 429, End: 429},
- {Start: 500, End: 599},
- }
- require.True(t, ShouldRetryByStatusCode(429))
- require.True(t, ShouldRetryByStatusCode(500))
- require.False(t, ShouldRetryByStatusCode(400))
- require.False(t, ShouldRetryByStatusCode(200))
- }
- func TestShouldRetryByStatusCode_DefaultMatchesLegacyBehavior(t *testing.T) {
- require.False(t, ShouldRetryByStatusCode(200))
- require.False(t, ShouldRetryByStatusCode(400))
- require.True(t, ShouldRetryByStatusCode(401))
- require.False(t, ShouldRetryByStatusCode(408))
- require.True(t, ShouldRetryByStatusCode(429))
- require.True(t, ShouldRetryByStatusCode(500))
- require.False(t, ShouldRetryByStatusCode(504))
- require.False(t, ShouldRetryByStatusCode(524))
- require.True(t, ShouldRetryByStatusCode(599))
- }
|