fix(cmd version): show unknown when BuildNumber is empty

Signed-off-by: Mehdi Moussaif <m.moussaif42@gmail.com>

Use cobra's OutOrStdout instead of os.Stdout

Signed-off-by: Mehdi Moussaif <m.moussaif42@gmail.com>

Test cmd version output

Signed-off-by: Mehdi Moussaif <m.moussaif42@gmail.com>

Apply recommanded changes

Signed-off-by: Mehdi Moussaif <m.moussaif42@gmail.com>

Unneeded if and print statement
This commit is contained in:
Mehdi Moussaif
2023-11-21 11:10:00 +01:00
parent 0191135b10
commit 887f6a0d0e
2 changed files with 49 additions and 4 deletions

View File

@@ -3,7 +3,6 @@ package version
import (
"context"
"fmt"
"os"
"github.com/kubescape/go-logger"
"github.com/kubescape/kubescape/v3/core/cautils"
@@ -18,10 +17,11 @@ func GetVersionCmd() *cobra.Command {
RunE: func(cmd *cobra.Command, args []string) error {
ctx := context.TODO()
v := cautils.NewIVersionCheckHandler(ctx)
v.CheckLatestVersion(ctx, cautils.NewVersionCheckRequest(cautils.BuildNumber, "", "", "version"))
fmt.Fprintf(os.Stdout,
versionCheckRequest := cautils.NewVersionCheckRequest(cautils.BuildNumber, "", "", "version")
v.CheckLatestVersion(ctx, versionCheckRequest)
fmt.Fprintf(cmd.OutOrStdout(),
"Your current version is: %s\n",
cautils.BuildNumber,
versionCheckRequest.ClientVersion,
)
logger.L().Debug(fmt.Sprintf("git enabled in build: %t", isGitEnabled()))
return nil

View File

@@ -0,0 +1,45 @@
package version
import (
"bytes"
"io"
"testing"
"github.com/kubescape/kubescape/v3/core/cautils"
"github.com/stretchr/testify/assert"
)
func TestGetVersionCmd(t *testing.T) {
tests := []struct {
name string
buildNumber string
want string
}{
{
name: "Undefined Build Number",
buildNumber: "",
want: "Your current version is: unknown\n",
},
{
name: "Defined Build Number: v3.0.1",
buildNumber: "v3.0.1",
want: "Your current version is: v3.0.1\n",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
cautils.BuildNumber = tt.buildNumber
if cmd := GetVersionCmd(); cmd != nil {
buf := bytes.NewBufferString("")
cmd.SetOut(buf)
cmd.Execute()
out, err := io.ReadAll(buf)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, tt.want, string(out))
}
})
}
}