Skip to content

Commit e06e758

Browse files
committed
cli/command/system: TestVersionFormat: use table-test and struct literal
- Use a table-test to more easily allow adding test-cases - Use the test-name itself as name for the golden file - Use a struct-literal to create the fixture for formatting. Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 58bb45c commit e06e758

File tree

4 files changed

+81
-79
lines changed

4 files changed

+81
-79
lines changed

cli/command/system/testdata/docker-client-version.golden renamed to cli/command/system/testdata/TestVersionFormat/default.golden

File renamed without changes.

cli/command/system/testdata/docker-client-version.json.golden renamed to cli/command/system/testdata/TestVersionFormat/json.golden

File renamed without changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Client":{"Version":"18.99.5-ce","ApiVersion":"1.38","DefaultAPIVersion":"1.38","GitCommit":"deadbeef","GoVersion":"go1.10.2","Os":"linux","Arch":"amd64","BuildTime":"Wed May 30 22:21:05 2018","Context":"my-context"},"Server":{"Platform":{"Name":"Docker Enterprise Edition (EE) 2.0"},"Components":[{"Name":"Engine","Version":"17.06.2-ee-15","Details":{"ApiVersion":"1.30","Arch":"amd64","BuildTime":"Mon Jul 9 23:38:38 2018","Experimental":"false","GitCommit":"64ddfa6","GoVersion":"go1.8.7","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"Universal Control Plane","Version":"17.06.2-ee-15","Details":{"ApiVersion":"1.30","Arch":"amd64","BuildTime":"Mon Jul 2 21:24:07 UTC 2018","GitCommit":"4513922","GoVersion":"go1.9.4","MinApiVersion":"1.20","Os":"linux","Version":"3.0.3-tp2"}},{"Name":"Kubernetes","Version":"1.8+","Details":{"buildDate":"2018-04-26T16:51:21Z","compiler":"gc","gitCommit":"8d637aedf46b9c21dde723e29c645b9f27106fa5","gitTreeState":"clean","gitVersion":"v1.8.11-docker-8d637ae","goVersion":"go1.8.3","major":"1","minor":"8+","platform":"linux/amd64"}},{"Name":"Calico","Version":"v3.0.8","Details":{"cni":"v2.0.6","kube-controllers":"v2.0.5","node":"v3.0.8"}}],"Version":"","ApiVersion":"","GitCommit":"","GoVersion":"","Os":"","Arch":""}}

cli/command/system/version_test.go

Lines changed: 80 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -45,89 +45,90 @@ func TestVersionFormat(t *testing.T) {
4545
BuildTime: "Wed May 30 22:21:05 2018",
4646
Context: "my-context",
4747
},
48-
Server: &types.Version{},
48+
Server: &types.Version{
49+
Platform: struct{ Name string }{Name: "Docker Enterprise Edition (EE) 2.0"},
50+
Components: []types.ComponentVersion{
51+
{
52+
Name: "Engine",
53+
Version: "17.06.2-ee-15",
54+
Details: map[string]string{
55+
"ApiVersion": "1.30",
56+
"MinAPIVersion": "1.12",
57+
"GitCommit": "64ddfa6",
58+
"GoVersion": "go1.8.7",
59+
"Os": "linux",
60+
"Arch": "amd64",
61+
"BuildTime": "Mon Jul 9 23:38:38 2018",
62+
"Experimental": "false",
63+
},
64+
},
65+
{
66+
Name: "Universal Control Plane",
67+
Version: "17.06.2-ee-15",
68+
Details: map[string]string{
69+
"Version": "3.0.3-tp2",
70+
"ApiVersion": "1.30",
71+
"Arch": "amd64",
72+
"BuildTime": "Mon Jul 2 21:24:07 UTC 2018",
73+
"GitCommit": "4513922",
74+
"GoVersion": "go1.9.4",
75+
"MinApiVersion": "1.20",
76+
"Os": "linux",
77+
},
78+
},
79+
{
80+
Name: "Kubernetes",
81+
Version: "1.8+",
82+
Details: map[string]string{
83+
"buildDate": "2018-04-26T16:51:21Z",
84+
"compiler": "gc",
85+
"gitCommit": "8d637aedf46b9c21dde723e29c645b9f27106fa5",
86+
"gitTreeState": "clean",
87+
"gitVersion": "v1.8.11-docker-8d637ae",
88+
"goVersion": "go1.8.3",
89+
"major": "1",
90+
"minor": "8+",
91+
"platform": "linux/amd64",
92+
},
93+
},
94+
{
95+
Name: "Calico",
96+
Version: "v3.0.8",
97+
Details: map[string]string{
98+
"cni": "v2.0.6",
99+
"kube-controllers": "v2.0.5",
100+
"node": "v3.0.8",
101+
},
102+
},
103+
},
104+
},
49105
}
50106

51-
vi.Server.Platform.Name = "Docker Enterprise Edition (EE) 2.0"
52-
53-
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
54-
Name: "Engine",
55-
Version: "17.06.2-ee-15",
56-
Details: map[string]string{
57-
"ApiVersion": "1.30",
58-
"MinAPIVersion": "1.12",
59-
"GitCommit": "64ddfa6",
60-
"GoVersion": "go1.8.7",
61-
"Os": "linux",
62-
"Arch": "amd64",
63-
"BuildTime": "Mon Jul 9 23:38:38 2018",
64-
"Experimental": "false",
107+
tests := []struct {
108+
name string
109+
format string
110+
}{
111+
{
112+
name: "default",
65113
},
66-
})
67-
68-
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
69-
Name: "Universal Control Plane",
70-
Version: "17.06.2-ee-15",
71-
Details: map[string]string{
72-
"Version": "3.0.3-tp2",
73-
"ApiVersion": "1.30",
74-
"Arch": "amd64",
75-
"BuildTime": "Mon Jul 2 21:24:07 UTC 2018",
76-
"GitCommit": "4513922",
77-
"GoVersion": "go1.9.4",
78-
"MinApiVersion": "1.20",
79-
"Os": "linux",
114+
{
115+
name: "json",
116+
format: "json",
80117
},
81-
})
82-
83-
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
84-
Name: "Kubernetes",
85-
Version: "1.8+",
86-
Details: map[string]string{
87-
"buildDate": "2018-04-26T16:51:21Z",
88-
"compiler": "gc",
89-
"gitCommit": "8d637aedf46b9c21dde723e29c645b9f27106fa5",
90-
"gitTreeState": "clean",
91-
"gitVersion": "v1.8.11-docker-8d637ae",
92-
"goVersion": "go1.8.3",
93-
"major": "1",
94-
"minor": "8+",
95-
"platform": "linux/amd64",
118+
{
119+
name: "json template",
120+
format: "json",
96121
},
97-
})
98-
99-
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
100-
Name: "Calico",
101-
Version: "v3.0.8",
102-
Details: map[string]string{
103-
"cni": "v2.0.6",
104-
"kube-controllers": "v2.0.5",
105-
"node": "v3.0.8",
106-
},
107-
})
122+
}
123+
for _, tc := range tests {
124+
t.Run(tc.name, func(t *testing.T) {
125+
tmpl, err := newVersionTemplate(tc.format)
126+
assert.NilError(t, err)
108127

109-
t.Run("default", func(t *testing.T) {
110-
cli := test.NewFakeCli(&fakeClient{})
111-
tmpl, err := newVersionTemplate("")
112-
assert.NilError(t, err)
113-
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
114-
assert.Check(t, golden.String(cli.OutBuffer().String(), "docker-client-version.golden"))
115-
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
116-
})
117-
t.Run("json", func(t *testing.T) {
118-
cli := test.NewFakeCli(&fakeClient{})
119-
tmpl, err := newVersionTemplate("json")
120-
assert.NilError(t, err)
121-
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
122-
assert.Check(t, golden.String(cli.OutBuffer().String(), "docker-client-version.json.golden"))
123-
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
124-
})
125-
t.Run("json template", func(t *testing.T) {
126-
cli := test.NewFakeCli(&fakeClient{})
127-
tmpl, err := newVersionTemplate("{{json .}}")
128-
assert.NilError(t, err)
129-
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
130-
assert.Check(t, golden.String(cli.OutBuffer().String(), "docker-client-version.json.golden"))
131-
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
132-
})
128+
cli := test.NewFakeCli(&fakeClient{})
129+
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
130+
assert.Check(t, golden.String(cli.OutBuffer().String(), t.Name()+".golden"))
131+
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
132+
})
133+
}
133134
}

0 commit comments

Comments
 (0)