2023-09-12 21:46:04 +02:00
|
|
|
package commands
|
|
|
|
|
|
|
|
import (
|
2023-09-13 11:53:19 +02:00
|
|
|
"bytes"
|
|
|
|
"io"
|
|
|
|
"strings"
|
2023-09-12 21:46:04 +02:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestRootCommand(t *testing.T) {
|
|
|
|
cmd := RootCommand(false)
|
|
|
|
assert.NotNil(t, cmd)
|
2024-01-19 12:47:28 +01:00
|
|
|
assert.Len(t, cmd.Commands(), 7)
|
2023-09-12 21:46:04 +02:00
|
|
|
err := cmd.Execute()
|
|
|
|
assert.NoError(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestRootCommandExperimental(t *testing.T) {
|
|
|
|
cmd := RootCommand(true)
|
|
|
|
assert.NotNil(t, cmd)
|
2024-01-19 12:47:28 +01:00
|
|
|
assert.Len(t, cmd.Commands(), 9)
|
2023-09-12 21:46:04 +02:00
|
|
|
err := cmd.Execute()
|
|
|
|
assert.NoError(t, err)
|
|
|
|
}
|
2023-09-13 11:53:19 +02:00
|
|
|
|
|
|
|
func TestRootCommandWithInvalidArg(t *testing.T) {
|
|
|
|
cmd := RootCommand(false)
|
|
|
|
assert.NotNil(t, cmd)
|
|
|
|
b := bytes.NewBufferString("")
|
|
|
|
cmd.SetErr(b)
|
|
|
|
cmd.SetArgs([]string{"foo"})
|
|
|
|
err := cmd.Execute()
|
|
|
|
assert.Error(t, err)
|
|
|
|
out, err := io.ReadAll(b)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
expected := `
|
|
|
|
Error: unknown command "foo" for "kyverno"
|
|
|
|
Run 'kyverno --help' for usage.`
|
|
|
|
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(out)))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestRootCommandWithInvalidFlag(t *testing.T) {
|
|
|
|
cmd := RootCommand(false)
|
|
|
|
assert.NotNil(t, cmd)
|
|
|
|
b := bytes.NewBufferString("")
|
|
|
|
cmd.SetErr(b)
|
|
|
|
cmd.SetArgs([]string{"--xxx"})
|
|
|
|
err := cmd.Execute()
|
|
|
|
assert.Error(t, err)
|
|
|
|
out, err := io.ReadAll(b)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
expected := `Error: unknown flag: --xxx`
|
|
|
|
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(out)))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestRootCommandHelp(t *testing.T) {
|
|
|
|
cmd := RootCommand(false)
|
|
|
|
assert.NotNil(t, cmd)
|
|
|
|
b := bytes.NewBufferString("")
|
|
|
|
cmd.SetOut(b)
|
|
|
|
cmd.SetArgs([]string{"--help"})
|
|
|
|
err := cmd.Execute()
|
|
|
|
assert.NoError(t, err)
|
|
|
|
out, err := io.ReadAll(b)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.True(t, strings.HasPrefix(string(out), cmd.Long))
|
|
|
|
}
|