package util import ( "github.com/stretchr/testify/require" "io" "strings" "testing" ) func TestPeak_LimitReached(t *testing.T) { underlying := io.NopCloser(strings.NewReader("1234567890")) peaked, err := Peek(underlying, 5) if err != nil { t.Fatal(err) } require.Equal(t, []byte("12345"), peaked.PeekedBytes) require.Equal(t, true, peaked.LimitReached) all, err := io.ReadAll(peaked) if err != nil { t.Fatal(err) } require.Equal(t, []byte("1234567890"), all) require.Equal(t, []byte("12345"), peaked.PeekedBytes) require.Equal(t, true, peaked.LimitReached) } func TestPeak_LimitNotReached(t *testing.T) { underlying := io.NopCloser(strings.NewReader("1234567890")) peaked, err := Peek(underlying, 15) if err != nil { t.Fatal(err) } all, err := io.ReadAll(peaked) if err != nil { t.Fatal(err) } require.Equal(t, []byte("1234567890"), all) require.Equal(t, []byte("1234567890"), peaked.PeekedBytes) require.Equal(t, false, peaked.LimitReached) } func TestPeak_Nil(t *testing.T) { peaked, err := Peek(nil, 15) if err != nil { t.Fatal(err) } all, err := io.ReadAll(peaked) if err != nil { t.Fatal(err) } require.Equal(t, []byte(""), all) require.Equal(t, []byte(""), peaked.PeekedBytes) require.Equal(t, false, peaked.LimitReached) }