瀏覽代碼

Add test for the backtracking of lines

Djordje Lukic 5 年之前
父節點
當前提交
d3f1209bab
共有 2 個文件被更改,包括 26 次插入8 次删除
  1. 14 8
      azure/aci.go
  2. 12 0
      azure/aci_test.go

+ 14 - 8
azure/aci.go

@@ -265,16 +265,10 @@ func streamLogs(ctx context.Context, aciContext store.AciContext, containerGroup
 			b = b.Up(uint(numLines))
 			fmt.Fprint(out, b.Column(0).ANSI)
 
-			for i := 0; i < currentOutput-1; i++ {
-				fmt.Fprintln(out, logLines[i])
-			}
+			numLines = getBacktrackLines(logLines, terminalWidth)
 
-			numLines = 0
 			for i := 0; i < currentOutput-1; i++ {
-				numLines++
-				if len(logLines[i]) > terminalWidth {
-					numLines += len(logLines[i]) / terminalWidth
-				}
+				fmt.Fprintln(out, logLines[i])
 			}
 
 			time.Sleep(2 * time.Second)
@@ -282,6 +276,18 @@ func streamLogs(ctx context.Context, aciContext store.AciContext, containerGroup
 	}
 }
 
+func getBacktrackLines(lines []string, terminalWidth int) int {
+	numLines := 0
+	for i := 0; i < len(lines)-1; i++ {
+		numLines++
+		if len(lines[i]) > terminalWidth {
+			numLines += len(lines[i]) / terminalWidth
+		}
+	}
+
+	return numLines
+}
+
 func getContainerGroupsClient(subscriptionID string) (containerinstance.ContainerGroupsClient, error) {
 	containerGroupsClient := containerinstance.NewContainerGroupsClient(subscriptionID)
 	err := setupClient(&containerGroupsClient.Client)

+ 12 - 0
azure/aci_test.go

@@ -0,0 +1,12 @@
+package azure
+
+import (
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestGetLinesWritten(t *testing.T) {
+	assert.Equal(t, 0, getBacktrackLines([]string{"Hello"}, 10))
+	assert.Equal(t, 3, getBacktrackLines([]string{"Hello", "world"}, 2))
+}