package test import ( "git.sxidc.com/go-tools/argo-api" "git.sxidc.com/go-tools/argo-api/client" "github.com/pkg/errors" "gopkg.in/yaml.v3" "testing" ) func TestWorkflowTemplate(t *testing.T) { argo.Init(baseUrl, token, client.WithTimeoutSec(10)) defer argo.Destroy() templateDefinition := make(map[string]any) err := yaml.Unmarshal(templateYamlStr, &templateDefinition) if err != nil { panic(err) } err = argo.GetInstance().LintWorkflowTemplate(client.LintWorkflowTemplateParams{ Namespace: namespace, TemplateDefinition: templateDefinition, }) if err != nil { t.Fatalf("%+v\n", err) } err = argo.GetInstance().CreateWorkflowTemplate(client.CreateWorkflowTemplateParams{ Namespace: namespace, TemplateDefinition: templateDefinition, }) if err != nil { t.Fatalf("%+v\n", err) } defer func() { err := argo.GetInstance().DeleteWorkflowTemplate(client.DeleteWorkflowTemplateParams{ Namespace: namespace, Name: workflowTemplateName, }) if err != nil { t.Fatalf("%+v\n", err) } }() createdTemplateDefinitions, err := argo.GetInstance().GetWorkflowTemplatesInNamespace(client.GetWorkflowTemplatesInNamespaceParams{ Namespace: namespace, }) if err != nil { t.Fatalf("%+v\n", err) } if len(createdTemplateDefinitions) != 1 { t.Fatalf("%+v\n", errors.Errorf("数量不一致: %v", len(createdTemplateDefinitions))) } createdTemplateDefinition, err := argo.GetInstance().GetWorkflowTemplate(client.GetWorkflowTemplateParams{ Namespace: namespace, Name: workflowTemplateName, }) if err != nil { t.Fatalf("%+v\n", err) } compareDefinitionMap(t, createdTemplateDefinition, createdTemplateDefinitions[0]) compareDefinitionMap(t, createdTemplateDefinitions[0], createdTemplateDefinition) err = argo.GetInstance().UpdateWorkflowTemplate(client.UpdateWorkflowTemplateParams{ Namespace: namespace, Name: workflowTemplateName, TemplateDefinition: createdTemplateDefinition, }) if err != nil { t.Fatalf("%+v\n", err) } }