coder/pty/ptytest/ptytest_internal_test.go

38 lines
634 B
Go

package ptytest
import (
"bytes"
"io"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestStdbuf(t *testing.T) {
t.Parallel()
var got bytes.Buffer
b := newStdbuf()
done := make(chan struct{})
go func() {
defer close(done)
_, err := io.Copy(&got, b)
assert.NoError(t, err)
}()
_, err := b.Write([]byte("hello "))
require.NoError(t, err)
_, err = b.Write([]byte("world\n"))
require.NoError(t, err)
_, err = b.Write([]byte("bye\n"))
require.NoError(t, err)
err = b.Close()
require.NoError(t, err)
<-done
assert.Equal(t, "hello world\nbye\n", got.String())
}