mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-14 10:30:59 +00:00
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
// Copyright 2019 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package kubectlcobra
|
|
|
|
import (
|
|
"context"
|
|
"github.com/stretchr/testify/assert"
|
|
"k8s.io/cli-runtime/pkg/genericclioptions"
|
|
cmdtesting "k8s.io/kubectl/pkg/cmd/testing"
|
|
"testing"
|
|
)
|
|
|
|
// The applier is currently hard to test, as the dependencies on the ApplyOptions and
|
|
// the resolver are hard to stub out. As we work to better separate the different
|
|
// responsibilities of the apply functionality, we should also make it easier to test.
|
|
// This provides some basic tests for now.
|
|
|
|
func TestApplierWithUnknownFile(t *testing.T) {
|
|
tf := cmdtesting.NewTestFactory()
|
|
defer tf.Cleanup()
|
|
iostreams, _, _, _ := genericclioptions.NewTestIOStreams()
|
|
cmd := NewCmdApply("base", tf, iostreams)
|
|
|
|
applier := newApplier(tf, iostreams)
|
|
filenames := []string{"file.yaml"}
|
|
applier.applyOptions.DeleteFlags.FileNameFlags.Filenames = &filenames
|
|
|
|
err := applier.Initialize(cmd)
|
|
assert.NoError(t, err)
|
|
|
|
ch := applier.Run(context.TODO())
|
|
|
|
var events []Event
|
|
for msg := range ch {
|
|
events = append(events, msg)
|
|
}
|
|
|
|
if !assert.Equal(t, 1, len(events)) {
|
|
return
|
|
}
|
|
|
|
event := events[0]
|
|
if !assert.Equal(t, ErrorEventType, event.EventType) {
|
|
return
|
|
}
|
|
assert.Contains(t, event.ErrorEvent.Err.Error(), "does not exist")
|
|
}
|