From 1b5f1484f50ee820ebc0469fc057f52eff0f8bf6 Mon Sep 17 00:00:00 2001 From: Jonas-Taha El Sesiy Date: Mon, 12 Aug 2024 15:22:44 -0700 Subject: [PATCH] wip increase test coverage --- pkg/cmd/types_test.go | 8 ++++--- pkg/cmd/view-secret_test.go | 48 +++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/pkg/cmd/types_test.go b/pkg/cmd/types_test.go index e586482..508bc29 100644 --- a/pkg/cmd/types_test.go +++ b/pkg/cmd/types_test.go @@ -5,6 +5,8 @@ import ( "errors" "reflect" "testing" + + "github.com/stretchr/testify/assert" ) var ( @@ -76,13 +78,13 @@ func TestSerialize(t *testing.T) { err := json.Unmarshal([]byte(tt.input), &got) if err != nil { if tt.wantErr == nil { - t.Fatalf("unexpected error: %v", err) + assert.Fail(t, "unexpected error", err) } else if err.Error() != tt.wantErr.Error() { - t.Errorf("expected error %v, got %v", tt.wantErr, err) + assert.Equal(t, tt.wantErr, err) } return } else if tt.wantErr != nil { - t.Errorf("expected error %v, got nil", tt.wantErr) + assert.Fail(t, "expected error, got nil", tt.wantErr) return } diff --git a/pkg/cmd/view-secret_test.go b/pkg/cmd/view-secret_test.go index 235e38e..6908601 100644 --- a/pkg/cmd/view-secret_test.go +++ b/pkg/cmd/view-secret_test.go @@ -2,7 +2,9 @@ package cmd import ( "bytes" + "errors" "fmt" + "io" "strings" "testing" @@ -47,6 +49,52 @@ func TestParseArgs(t *testing.T) { } } +func TestNewCmdViewSecret(t *testing.T) { + tests := map[string]struct { + args []string + wantErr error + }{ + "all": {args: []string{"test", "--all"}}, + "custom ctx": {args: []string{"test", "--context", "gotest"}}, + "custom kubecfg": {args: []string{"test", "--kubeconfig", "cfg"}}, + "custom ns": {args: []string{"test", "--namespace", "bob"}}, + "impersonate group": {args: []string{"test", "--as-group", "golovers"}}, + "impersonate user": {args: []string{"test", "--as", "gopher"}}, + "quiet": {args: []string{"test", "--all", "--quiet"}}, + "unknown flag": {args: []string{"--version"}, wantErr: errors.New("unknown flag: --version")}, + } + + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + t.Parallel() + + cmd := NewCmdViewSecret() + outBuf := bytes.NewBufferString("") + + cmd.SetOut(outBuf) + cmd.SetArgs(tt.args) + + err := cmd.Execute() + if err != nil { + if tt.wantErr == nil { + assert.Fail(t, "unexpected error", err) + } else if err.Error() != tt.wantErr.Error() { + assert.Equal(t, tt.wantErr, err) + } + return + } else if tt.wantErr != nil { + assert.Fail(t, "expected error, got nil", tt.wantErr) + return + } + + _, err = io.ReadAll(outBuf) + if err != nil { + t.Fatal(err) + } + }) + } +} + func TestProcessSecret(t *testing.T) { tests := map[string]struct { secretData SecretData