diff --git a/testing/internal/e2e/boundary/connect.go b/testing/internal/e2e/boundary/connect.go index ba2a24d1dd..32da10ef11 100644 --- a/testing/internal/e2e/boundary/connect.go +++ b/testing/internal/e2e/boundary/connect.go @@ -71,18 +71,27 @@ func ConnectCliStdoutPipe(t testing.TB, ctx context.Context, targetId string) Co } }) - // Read the first line of output (JSON with connection info) + // Read lines until we find valid JSON scanner := bufio.NewScanner(stdoutPipe) - var outputLine string - if scanner.Scan() { - outputLine = scanner.Text() + var connectOutput ConnectCliOutput + linesRead := 0 + maxLines := 50 + + for scanner.Scan() && linesRead < maxLines { + linesRead++ + outputLine := scanner.Text() + + // Try to parse as JSON + err = json.Unmarshal([]byte(outputLine), &connectOutput) + if err == nil { + break + } + } - require.NoError(t, scanner.Err()) - // Parse the JSON output - var connectOutput ConnectCliOutput - err = json.Unmarshal([]byte(outputLine), &connectOutput) - require.NoError(t, err) + require.NoError(t, scanner.Err()) + require.NotEmpty(t, connectOutput.Address) + require.NotZero(t, connectOutput.Port) return connectOutput }