mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
118 lines
2.2 KiB
Go
118 lines
2.2 KiB
Go
// Copyright 2019 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package commands_test
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"sigs.k8s.io/kustomize/cmd/config/internal/commands"
|
|
)
|
|
|
|
const (
|
|
flagsInput = `kind: ResourceList
|
|
items:
|
|
- apiVersion: apps/v1
|
|
kind: Deployment
|
|
spec:
|
|
template:
|
|
spec:
|
|
containers:
|
|
- name: nginx
|
|
image: nginx
|
|
- apiVersion: apps/v1
|
|
kind: Service
|
|
spec: {}
|
|
functionConfig:
|
|
kind: Foo
|
|
spec:
|
|
a: b
|
|
c: d
|
|
e: f
|
|
items:
|
|
- 1
|
|
- 3
|
|
- 2
|
|
- 4
|
|
`
|
|
|
|
resourceInput = `apiVersion: config.kubernetes.io/v1alpha1
|
|
kind: ResourceList
|
|
items:
|
|
- apiVersion: apps/v1
|
|
kind: Deployment
|
|
spec:
|
|
template:
|
|
spec:
|
|
containers:
|
|
- name: nginx
|
|
image: nginx
|
|
- apiVersion: apps/v1
|
|
kind: Service
|
|
spec: {}
|
|
functionConfig:
|
|
kind: Foo
|
|
`
|
|
|
|
resourceOutput = `apiVersion: v1
|
|
kind: List
|
|
items:
|
|
- apiVersion: apps/v1
|
|
kind: Deployment
|
|
spec:
|
|
template:
|
|
spec:
|
|
containers:
|
|
- name: nginx
|
|
image: nginx
|
|
- apiVersion: apps/v1
|
|
kind: Service
|
|
spec: {}
|
|
`
|
|
)
|
|
|
|
func TestXArgs_flags(t *testing.T) {
|
|
c := commands.GetXArgsRunner()
|
|
c.Command.SetIn(bytes.NewBufferString(flagsInput))
|
|
out := &bytes.Buffer{}
|
|
c.Command.SetOut(out)
|
|
c.Command.SetArgs([]string{"--", "echo"})
|
|
|
|
c.Args = []string{"--", "echo"}
|
|
if !assert.NoError(t, c.Command.Execute()) {
|
|
t.FailNow()
|
|
}
|
|
assert.Equal(t, strings.TrimSpace(`--a=b --c=d --e=f 1 3 2 4`), strings.TrimSpace(out.String()))
|
|
}
|
|
|
|
func TestXArgs_input(t *testing.T) {
|
|
c := commands.GetXArgsRunner()
|
|
c.Command.SetIn(bytes.NewBufferString(resourceInput))
|
|
out := &bytes.Buffer{}
|
|
c.Command.SetOut(out)
|
|
c.Command.SetArgs([]string{"--", "cat"})
|
|
|
|
c.Args = []string{"--", "cat"}
|
|
if !assert.NoError(t, c.Command.Execute()) {
|
|
t.FailNow()
|
|
}
|
|
assert.Equal(t, resourceOutput, out.String())
|
|
}
|
|
|
|
func TestCmd_env(t *testing.T) {
|
|
c := commands.GetXArgsRunner()
|
|
c.Command.SetIn(bytes.NewBufferString(flagsInput))
|
|
out := &bytes.Buffer{}
|
|
c.Command.SetOut(out)
|
|
c.Command.SetArgs([]string{"--env-only", "--", "env"})
|
|
|
|
c.Args = []string{"--", "env"}
|
|
if !assert.NoError(t, c.Command.Execute()) {
|
|
t.FailNow()
|
|
}
|
|
assert.Contains(t, out.String(), "\nA=b\nC=d\nE=f\n")
|
|
}
|