package test import ( _ "embed" ) //func TestApproveFormer(t *testing.T) { // flow := approve_former.NewFlow("flow", // approve_former.NewSign("A"), // approve_former.NewOr( // approve_former.NewSign("B"), // approve_former.NewSign("C"), // ), // approve_former.NewAnd( // approve_former.NewSign("D"), // approve_former.NewSign("E"), // ), // approve_former.NewSign("F"), // ) // // flowDefinition, err := flow.Render(nil) // if err != nil { // t.Fatalf("%+v\n", err) // } // // fmt.Println(flowDefinition) //} // //func TestUseApproveFormer(t *testing.T) { // err := argo.Init(kubeConfig) // if err != nil { // t.Fatalf("%+v\n", err) // } // // defer argo.Destroy() // // flowName := "flow-" + time.Now().Format("20060102150405") // // flow := approve_former.NewFlow(flowName, // approve_former.NewSign("A"), // approve_former.NewOr( // approve_former.NewSign("B"), // approve_former.NewSign("C"), // ), // approve_former.NewAnd( // approve_former.NewSign("D"), // approve_former.NewSign("E"), // ), // approve_former.NewSign("F"), // ) // // flowDefinition, err := flow.Render(nil) // if err != nil { // t.Fatalf("%+v\n", err) // } // // err = argo.GetInstance().CreateWorkflowTemplate(client.CreateWorkflowTemplateParams{ // Namespace: namespace, // TemplateDefinition: flowDefinition, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // defer func() { // err := argo.GetInstance().DeleteWorkflowTemplate(client.DeleteWorkflowTemplateParams{ // Namespace: namespace, // Name: flowName, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // }() // // workflowName, err := argo.GetInstance().SubmitWorkflowFromWorkflowTemplate(client.SubmitWorkflowFromWorkflowTemplateParams{ // Namespace: namespace, // TemplateName: flowName, // Parameters: []string{ // `object={"name": "yjp", "age": 37}`, // }, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // defer func() { // err := argo.GetInstance().DeleteWorkflow(client.DeleteWorkflowParams{ // Namespace: namespace, // Name: workflowName, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // }() // // wg := sync.WaitGroup{} // wg.Add(1) // // resumeMap := make(map[string]bool) // // err = argo.GetInstance().RegisterWorkflowWatcher(namespace, workflowName, func(wf *v1alpha1.Workflow) { // if wf.Status.Nodes == nil { // return // } // // for _, node := range wf.Status.Nodes { // if node.DisplayName == "A" && node.Phase == "Running" && node.Outputs.Parameters[0].Value == nil { // _, ok := resumeMap[node.DisplayName] // if ok { // return // } // // err := argo.GetInstance().SetWorkflow(client.SetWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=A", // OutputParameters: `{"front_json": "通过"}`, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // err = argo.GetInstance().ResumeWorkflow(client.ResumeWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=A", // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // resumeMap[node.DisplayName] = true // } // // if node.DisplayName == "B" && node.Phase == "Running" && node.Outputs.Parameters[0].Value == nil { // _, ok := resumeMap[node.DisplayName] // if ok { // return // } // // err := argo.GetInstance().SetWorkflow(client.SetWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=B", // OutputParameters: `{"front_json": "通过"}`, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // err = argo.GetInstance().ResumeWorkflow(client.ResumeWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=B", // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // resumeMap[node.DisplayName] = true // } // // if node.DisplayName == "C" && node.Phase == "Running" && node.Outputs.Parameters[0].Value == nil { // _, ok := resumeMap[node.DisplayName] // if ok { // return // } // // err := argo.GetInstance().SetWorkflow(client.SetWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=C", // OutputParameters: `{"front_json": "拒绝"}`, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // err = argo.GetInstance().ResumeWorkflow(client.ResumeWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=C", // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // resumeMap[node.DisplayName] = true // } // // if node.DisplayName == "D" && node.Phase == "Running" && node.Outputs.Parameters[0].Value == nil { // _, ok := resumeMap[node.DisplayName] // if ok { // return // } // // err := argo.GetInstance().SetWorkflow(client.SetWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=D", // OutputParameters: `{"front_json": "通过"}`, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // err = argo.GetInstance().ResumeWorkflow(client.ResumeWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=D", // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // resumeMap[node.DisplayName] = true // } // // if node.DisplayName == "E" && node.Phase == "Running" && node.Outputs.Parameters[0].Value == nil { // _, ok := resumeMap[node.DisplayName] // if ok { // return // } // // err := argo.GetInstance().SetWorkflow(client.SetWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=E", // OutputParameters: `{"front_json": "通过"}`, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // err = argo.GetInstance().ResumeWorkflow(client.ResumeWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=E", // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // resumeMap[node.DisplayName] = true // } // // if node.DisplayName == "F" && node.Phase == "Running" && node.Outputs.Parameters[0].Value == nil { // _, ok := resumeMap[node.DisplayName] // if ok { // return // } // // err := argo.GetInstance().SetWorkflow(client.SetWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=F", // OutputParameters: `{"front_json": "通过"}`, // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // err = argo.GetInstance().ResumeWorkflow(client.ResumeWorkflowParams{ // Namespace: namespace, // Name: workflowName, // NodeFieldSelector: "displayName=F", // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // resumeMap[node.DisplayName] = true // } // // if node.DisplayName == "F" && node.Phase == "Succeeded" && node.Outputs.Parameters[0].Value.String() == "通过" { // wg.Done() // } // } // }) // if err != nil { // t.Fatalf("%+v\n", err) // } // // defer argo.GetInstance().UnregisterWorkflowWatcher(namespace, workflowName) // // wg.Wait() //}