1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-09 09:26:54 +00:00
kyverno/cmd/cli/kubectl-kyverno/commands/create/exception/command_test.go

102 lines
2.2 KiB
Go
Raw Normal View History

package exception
import (
"bytes"
"io"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestCommand(t *testing.T) {
cmd := Command()
cmd.SetArgs([]string{"test", "--policy-rules", "policy,rule-1,rule-2"})
err := cmd.Execute()
assert.NoError(t, err)
}
func TestCommandWithMultipleArgs(t *testing.T) {
cmd := Command()
cmd.SetArgs([]string{"test", "test2", "--policy-rules", "policy,rule-1,rule-2"})
err := cmd.Execute()
assert.Error(t, err)
}
func TestCommandWithoutPolicyRules(t *testing.T) {
cmd := Command()
cmd.SetArgs([]string{"test", "test2"})
err := cmd.Execute()
assert.Error(t, err)
}
func TestCommandWithAny(t *testing.T) {
cmd := Command()
cmd.SetArgs([]string{"test", "--policy-rules", "policy,rule-1,rule-2", "--any", "kind=Pod,kind=Deployment,name=test-*"})
b := bytes.NewBufferString("")
cmd.SetOut(b)
err := cmd.Execute()
assert.NoError(t, err)
out, err := io.ReadAll(b)
assert.NoError(t, err)
expected := `
apiVersion: kyverno.io/v2alpha1
kind: PolicyException
metadata:
name: test
namespace:
spec:
background: true
match:
any:
-
kinds:
- Pod
- Deployment
names:
- test-*
exceptions:
- policyName: policy
ruleNames:
- rule-1
- rule-2`
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(out)))
}
func TestCommandWithAll(t *testing.T) {
cmd := Command()
cmd.SetArgs([]string{"test", "--policy-rules", "policy,rule-1,rule-2", "--all", "kind=Pod,kind=Deployment,name=test-*,namespace=test,operation=UPDATE"})
b := bytes.NewBufferString("")
cmd.SetOut(b)
err := cmd.Execute()
assert.NoError(t, err)
out, err := io.ReadAll(b)
assert.NoError(t, err)
expected := `
apiVersion: kyverno.io/v2alpha1
kind: PolicyException
metadata:
name: test
namespace:
spec:
background: true
match:
all:
-
kinds:
- Pod
- Deployment
names:
- test-*
namespaces:
- test
operations:
- UPDATE
exceptions:
- policyName: policy
ruleNames:
- rule-1
- rule-2`
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(out)))
}