mirror of https://github.com/fluxcd/cli-utils.git
69 lines
1.8 KiB
Go
69 lines
1.8 KiB
Go
// Copyright 2021 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package task
|
|
|
|
import (
|
|
"testing"
|
|
|
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
"sigs.k8s.io/cli-utils/pkg/apply/cache"
|
|
"sigs.k8s.io/cli-utils/pkg/apply/event"
|
|
"sigs.k8s.io/cli-utils/pkg/apply/taskrunner"
|
|
"sigs.k8s.io/cli-utils/pkg/common"
|
|
"sigs.k8s.io/cli-utils/pkg/inventory"
|
|
"sigs.k8s.io/cli-utils/pkg/object"
|
|
)
|
|
|
|
func TestDeleteInvTask(t *testing.T) {
|
|
testCases := map[string]struct {
|
|
err error
|
|
isError bool
|
|
}{
|
|
"no error case": {
|
|
err: nil,
|
|
isError: false,
|
|
},
|
|
"error is returned in result": {
|
|
err: apierrors.NewResourceExpired("unused message"),
|
|
isError: true,
|
|
},
|
|
"inventory not found is not error and not returned": {
|
|
err: apierrors.NewNotFound(schema.GroupResource{Resource: "simples"},
|
|
"unused-resource-name"),
|
|
isError: false,
|
|
},
|
|
}
|
|
for name, tc := range testCases {
|
|
t.Run(name, func(t *testing.T) {
|
|
client := inventory.NewFakeClient(object.ObjMetadataSet{})
|
|
client.Err = tc.err
|
|
eventChannel := make(chan event.Event)
|
|
resourceCache := cache.NewResourceCacheMap()
|
|
context := taskrunner.NewTaskContext(eventChannel, resourceCache)
|
|
|
|
task := DeleteInvTask{
|
|
TaskName: taskName,
|
|
InvClient: client,
|
|
InvInfo: localInv,
|
|
DryRun: common.DryRunNone,
|
|
}
|
|
if taskName != task.Name() {
|
|
t.Errorf("expected task name (%s), got (%s)", taskName, task.Name())
|
|
}
|
|
task.Start(context)
|
|
result := <-context.TaskChannel()
|
|
if tc.isError {
|
|
if tc.err != result.Err {
|
|
t.Errorf("running DeleteInvTask expected error (%s), got (%s)", tc.err, result.Err)
|
|
}
|
|
} else {
|
|
if result.Err != nil {
|
|
t.Errorf("unexpected error running DeleteInvTask: %s", result.Err)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|