Browse Source

有工作流监听修改测试

yjp 1 year ago
parent
commit
bbb840e977
1 changed files with 40 additions and 44 deletions
  1. 40 44
      test/workflow_test.go

+ 40 - 44
test/workflow_test.go

@@ -269,20 +269,18 @@ func TestStopWorkflow(t *testing.T) {
 		t.Fatalf("%+v\n", err)
 	}
 
-	for {
-		wf, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
-			Namespace: namespace,
-			Name:      workflowName,
-		})
-		if err != nil {
-			t.Fatalf("%+v\n", err)
-		}
-
+	err = argo.GetInstance().WatchWorkflow(client.WatchWorkflowParams{
+		Namespace: namespace,
+		Name:      workflowName,
+	}, func(doneToken *client.WatchWorkflowDoneToken, wf *v1alpha1.Workflow) {
 		if wf.Status.Phase != "Running" {
-			break
+			return
 		}
 
-		time.Sleep(1 * time.Second)
+		doneToken.Done()
+	})
+	if err != nil {
+		t.Fatalf("%+v\n", err)
 	}
 }
 
@@ -320,20 +318,18 @@ func TestTerminateWorkflow(t *testing.T) {
 		t.Fatalf("%+v\n", err)
 	}
 
-	for {
-		wf, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
-			Namespace: namespace,
-			Name:      workflowName,
-		})
-		if err != nil {
-			t.Fatalf("%+v\n", err)
-		}
-
+	err = argo.GetInstance().WatchWorkflow(client.WatchWorkflowParams{
+		Namespace: namespace,
+		Name:      workflowName,
+	}, func(doneToken *client.WatchWorkflowDoneToken, wf *v1alpha1.Workflow) {
 		if wf.Status.Phase != "Running" {
-			break
+			return
 		}
 
-		time.Sleep(1 * time.Second)
+		doneToken.Done()
+	})
+	if err != nil {
+		t.Fatalf("%+v\n", err)
 	}
 }
 
@@ -363,15 +359,10 @@ func TestSetWorkflow(t *testing.T) {
 		}
 	}()
 
-	for {
-		wf, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
-			Namespace: namespace,
-			Name:      workflowName,
-		})
-		if err != nil {
-			t.Fatalf("%+v\n", err)
-		}
-
+	err = argo.GetInstance().WatchWorkflow(client.WatchWorkflowParams{
+		Namespace: namespace,
+		Name:      workflowName,
+	}, func(doneToken *client.WatchWorkflowDoneToken, wf *v1alpha1.Workflow) {
 		findA := false
 		for _, node := range wf.Status.Nodes {
 			if node.DisplayName == "A" {
@@ -379,11 +370,14 @@ func TestSetWorkflow(t *testing.T) {
 			}
 		}
 
-		if findA {
-			break
+		if !findA {
+			return
 		}
 
-		time.Sleep(1 * time.Second)
+		doneToken.Done()
+	})
+	if err != nil {
+		t.Fatalf("%+v\n", err)
 	}
 
 	err = argo.GetInstance().SetWorkflow(client.SetWorkflowParams{
@@ -451,20 +445,22 @@ func TestSuspendAndResumeWorkflow(t *testing.T) {
 		t.Fatalf("%+v\n", err)
 	}
 
-	for {
-		wf, err := argo.GetInstance().GetWorkflow(client.GetWorkflowParams{
-			Namespace: namespace,
-			Name:      workflowName,
-		})
-		if err != nil {
-			t.Fatalf("%+v\n", err)
+	err = argo.GetInstance().WatchWorkflow(client.WatchWorkflowParams{
+		Namespace: namespace,
+		Name:      workflowName,
+	}, func(doneToken *client.WatchWorkflowDoneToken, wf *v1alpha1.Workflow) {
+		if wf.Status.Phase != "Running" {
+			return
 		}
 
-		if wf.Spec.Suspend != nil && *wf.Spec.Suspend == true {
-			break
+		if wf.Spec.Suspend == nil || *wf.Spec.Suspend != true {
+			return
 		}
 
-		time.Sleep(1 * time.Second)
+		doneToken.Done()
+	})
+	if err != nil {
+		t.Fatalf("%+v\n", err)
 	}
 
 	err = argo.GetInstance().ResumeWorkflow(client.ResumeWorkflowParams{