60 lines
1.5 KiB
Go
60 lines
1.5 KiB
Go
package workflow_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/apimachinery/pkg/runtime"
|
|
|
|
"github.com/ian-howell/airshipctl/cmd"
|
|
"github.com/ian-howell/airshipctl/cmd/workflow"
|
|
"github.com/ian-howell/airshipctl/pkg/apis/workflow/v1alpha1"
|
|
argofake "github.com/ian-howell/airshipctl/pkg/client/clientset/versioned/fake"
|
|
wfenv "github.com/ian-howell/airshipctl/pkg/workflow/environment"
|
|
"github.com/ian-howell/airshipctl/test"
|
|
)
|
|
|
|
func TestWorkflowList(t *testing.T) {
|
|
rootCmd, settings, err := cmd.NewRootCmd(nil)
|
|
if err != nil {
|
|
t.Fatalf("Could not create root command: %s", err.Error())
|
|
}
|
|
workflowRoot := workflow.NewWorkflowCommand(settings)
|
|
workflowRoot.AddCommand(workflow.NewWorkflowListCommand(settings))
|
|
rootCmd.AddCommand(workflowRoot)
|
|
|
|
cmdTests := []WorkflowCmdTest{
|
|
{
|
|
CmdTest: &test.CmdTest{
|
|
Name: "workflow-list-empty",
|
|
CmdLine: "workflow list",
|
|
Objs: []runtime.Object{},
|
|
},
|
|
},
|
|
{
|
|
CmdTest: &test.CmdTest{
|
|
Name: "workflow-list-nonempty",
|
|
CmdLine: "workflow list",
|
|
Objs: []runtime.Object{},
|
|
},
|
|
ArgoObjs: []runtime.Object{
|
|
&v1alpha1.Workflow{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "fake-wf",
|
|
},
|
|
Status: v1alpha1.WorkflowStatus{
|
|
Phase: "completed",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tt := range cmdTests {
|
|
settings.PluginSettings[workflow.PluginSettingsID] = &wfenv.Settings{
|
|
ArgoClient: argofake.NewSimpleClientset(tt.ArgoObjs...),
|
|
}
|
|
test.RunTest(t, tt.CmdTest, rootCmd)
|
|
}
|
|
}
|