-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathformat_test.go
More file actions
78 lines (73 loc) · 1.68 KB
/
format_test.go
File metadata and controls
78 lines (73 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package output
import "testing"
func TestFormatEventLine(t *testing.T) {
t.Parallel()
tests := []struct {
name string
event any
want string
wantOK bool
}{
{
name: "log event",
event: LogEvent{Message: "hello"},
want: "hello",
wantOK: true,
},
{
name: "warning event",
event: WarningEvent{Message: "careful"},
want: "Warning: careful",
wantOK: true,
},
{
name: "status pulling",
event: ContainerStatusEvent{Phase: "pulling", Container: "localstack/localstack:latest"},
want: "Pulling localstack/localstack:latest...",
wantOK: true,
},
{
name: "status ready with detail",
event: ContainerStatusEvent{Phase: "ready", Container: "localstack", Detail: "abc123"},
want: "localstack ready (abc123)",
wantOK: true,
},
{
name: "progress with total",
event: ProgressEvent{LayerID: "abc123", Status: "Downloading", Current: 50, Total: 100},
want: " abc123: Downloading 50.0%",
wantOK: true,
},
{
name: "progress with status only",
event: ProgressEvent{LayerID: "abc123", Status: "Pull complete"},
want: " abc123: Pull complete",
wantOK: true,
},
{
name: "progress ignored when empty",
event: ProgressEvent{LayerID: "abc123"},
want: "",
wantOK: false,
},
{
name: "unsupported event",
event: struct{}{},
want: "",
wantOK: false,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
got, ok := FormatEventLine(tt.event)
if ok != tt.wantOK {
t.Fatalf("expected ok=%v, got %v", tt.wantOK, ok)
}
if got != tt.want {
t.Fatalf("expected %q, got %q", tt.want, got)
}
})
}
}