Extract a test library helper for ErrorWriter{}.

Signed-off-by: Matt Moyer <moyerm@vmware.com>
This commit is contained in:
Matt Moyer 2020-07-28 10:44:43 -05:00
parent a15a106fd3
commit 531954511b
2 changed files with 20 additions and 5 deletions

View File

@ -16,12 +16,10 @@ import (
"github.com/sclevine/spec/report" "github.com/sclevine/spec/report"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"k8s.io/client-go/pkg/apis/clientauthentication" "k8s.io/client-go/pkg/apis/clientauthentication"
"github.com/suzerain-io/placeholder-name/test/library"
) )
type errWriter struct{ returnErr error }
func (e *errWriter) Write([]byte) (int, error) { return 0, e.returnErr }
func TestRun(t *testing.T) { func TestRun(t *testing.T) {
spec.Run(t, "Run", func(t *testing.T, when spec.G, it spec.S) { spec.Run(t, "Run", func(t *testing.T, when spec.G, it spec.S) {
var buffer *bytes.Buffer var buffer *bytes.Buffer
@ -97,7 +95,7 @@ func TestRun(t *testing.T) {
}) })
it("returns an error", func() { it("returns an error", func() {
err := run(envGetter, tokenExchanger, &errWriter{returnErr: fmt.Errorf("some IO error")}, 30*time.Second) err := run(envGetter, tokenExchanger, &library.ErrorWriter{ReturnError: fmt.Errorf("some IO error")}, 30*time.Second)
require.EqualError(t, err, "failed to marshal response to stdout: some IO error") require.EqualError(t, err, "failed to marshal response to stdout: some IO error")
}) })
}, spec.Parallel()) }, spec.Parallel())

17
test/library/ioutil.go Normal file
View File

@ -0,0 +1,17 @@
/*
Copyright 2020 VMware, Inc.
SPDX-License-Identifier: Apache-2.0
*/
package library
import "io"
// ErrorWriter implements io.Writer by returning a fixed error.
type ErrorWriter struct {
ReturnError error
}
var _ io.Writer = &ErrorWriter{}
func (e *ErrorWriter) Write([]byte) (int, error) { return 0, e.ReturnError }