Add a test for "failed to marshal response to stdout" error case.
Signed-off-by: Matt Moyer <moyerm@vmware.com>
This commit is contained in:
parent
1e8463ac2d
commit
ebe39c8663
@ -10,14 +10,16 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/client-go/pkg/apis/clientauthentication"
|
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
|
|
||||||
"github.com/sclevine/spec"
|
"github.com/sclevine/spec"
|
||||||
"github.com/sclevine/spec/report"
|
"github.com/sclevine/spec/report"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"k8s.io/client-go/pkg/apis/clientauthentication"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
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
|
||||||
@ -83,6 +85,21 @@ func TestRun(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}, spec.Parallel())
|
}, spec.Parallel())
|
||||||
|
|
||||||
|
when("the JSON encoder fails", func() {
|
||||||
|
it.Before(func() {
|
||||||
|
tokenExchanger = func(token, caBundle, apiEndpoint string) (*clientauthentication.ExecCredential, error) {
|
||||||
|
return &clientauthentication.ExecCredential{
|
||||||
|
Status: &clientauthentication.ExecCredentialStatus{Token: "some token"},
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
it("returns an error", func() {
|
||||||
|
err := run(envGetter, tokenExchanger, &errWriter{returnErr: fmt.Errorf("some IO error")})
|
||||||
|
require.EqualError(t, err, "failed to marshal response to stdout: some IO error")
|
||||||
|
})
|
||||||
|
}, spec.Parallel())
|
||||||
|
|
||||||
when("the token exchange succeeds", func() {
|
when("the token exchange succeeds", func() {
|
||||||
var actualToken, actualCaBundle, actualAPIEndpoint string
|
var actualToken, actualCaBundle, actualAPIEndpoint string
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user