53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package sources
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestStreamRetryableWrapsThroughErrorChains(t *testing.T) {
|
|
base := errors.New("retry me")
|
|
err := fmt.Errorf("outer: %w", StreamRetryable(base))
|
|
|
|
if !IsStreamRetryable(err) {
|
|
t.Fatalf("IsStreamRetryable() = false, want true")
|
|
}
|
|
if IsStreamFatal(err) {
|
|
t.Fatalf("IsStreamFatal() = true, want false")
|
|
}
|
|
if !errors.Is(err, base) {
|
|
t.Fatalf("errors.Is(err, base) = false, want true")
|
|
}
|
|
}
|
|
|
|
func TestStreamFatalWrapsThroughErrorChains(t *testing.T) {
|
|
base := errors.New("fatal")
|
|
err := fmt.Errorf("outer: %w", StreamFatal(base))
|
|
|
|
if !IsStreamFatal(err) {
|
|
t.Fatalf("IsStreamFatal() = false, want true")
|
|
}
|
|
if IsStreamRetryable(err) {
|
|
t.Fatalf("IsStreamRetryable() = true, want false")
|
|
}
|
|
if !errors.Is(err, base) {
|
|
t.Fatalf("errors.Is(err, base) = false, want true")
|
|
}
|
|
}
|
|
|
|
func TestStreamErrorHelpersNil(t *testing.T) {
|
|
if StreamRetryable(nil) != nil {
|
|
t.Fatalf("StreamRetryable(nil) != nil")
|
|
}
|
|
if StreamFatal(nil) != nil {
|
|
t.Fatalf("StreamFatal(nil) != nil")
|
|
}
|
|
if IsStreamRetryable(nil) {
|
|
t.Fatalf("IsStreamRetryable(nil) = true")
|
|
}
|
|
if IsStreamFatal(nil) {
|
|
t.Fatalf("IsStreamFatal(nil) = true")
|
|
}
|
|
}
|