Răsfoiți Sursa

chore: fix flakey test

jamesread 7 ore în urmă
părinte
comite
a58e2fe0c3
1 a modificat fișierele cu 18 adăugiri și 0 ștergeri
  1. 18 0
      service/internal/api/api_log_arguments_test.go

+ 18 - 0
service/internal/api/api_log_arguments_test.go

@@ -40,6 +40,22 @@ func waitForLogArguments(t *testing.T, ex *executor.Executor, trackingID string)
 	return nil
 }
 
+func waitForLogFinished(t *testing.T, ex *executor.Executor, trackingID string) {
+	t.Helper()
+
+	deadline := time.Now().Add(2 * time.Second)
+	for time.Now().Before(deadline) {
+		entry, ok := ex.GetLog(trackingID)
+		if ok && entry.ExecutionFinished {
+			return
+		}
+
+		time.Sleep(5 * time.Millisecond)
+	}
+
+	t.Fatalf("timed out waiting for execution to finish on log %s", trackingID)
+}
+
 func waitForLogJustification(t *testing.T, ex *executor.Executor, trackingID, expected string) {
 	t.Helper()
 
@@ -166,6 +182,7 @@ func TestRestartActionReusesStoredArguments(t *testing.T) {
 
 	originalArgs := waitForLogArguments(t, ex, startResp.Msg.ExecutionTrackingId)
 	assert.Equal(t, "server-a", originalArgs["host"])
+	waitForLogFinished(t, ex, startResp.Msg.ExecutionTrackingId)
 
 	restartResp, err := client.RestartAction(context.Background(), connect.NewRequest(&apiv1.RestartActionRequest{
 		ExecutionTrackingId: startResp.Msg.ExecutionTrackingId,
@@ -338,6 +355,7 @@ func TestRestartActionReusesStoredJustificationViaStartActionPath(t *testing.T)
 	require.NoError(t, err)
 
 	waitForLogJustification(t, ex, startResp.Msg.ExecutionTrackingId, "maintenance window")
+	waitForLogFinished(t, ex, startResp.Msg.ExecutionTrackingId)
 
 	restartResp, err := client.RestartAction(context.Background(), connect.NewRequest(&apiv1.RestartActionRequest{
 		ExecutionTrackingId: startResp.Msg.ExecutionTrackingId,