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") } }