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 <github@gone.nl>
This commit is contained in:
1
cli/command/system/testdata/TestVersionFormat/json_template.golden
vendored
Normal file
1
cli/command/system/testdata/TestVersionFormat/json_template.golden
vendored
Normal file
@ -0,0 +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":""}}
|
||||
@ -45,89 +45,90 @@ func TestVersionFormat(t *testing.T) {
|
||||
BuildTime: "Wed May 30 22:21:05 2018",
|
||||
Context: "my-context",
|
||||
},
|
||||
Server: &types.Version{},
|
||||
Server: &types.Version{
|
||||
Platform: struct{ Name string }{Name: "Docker Enterprise Edition (EE) 2.0"},
|
||||
Components: []types.ComponentVersion{
|
||||
{
|
||||
Name: "Engine",
|
||||
Version: "17.06.2-ee-15",
|
||||
Details: map[string]string{
|
||||
"ApiVersion": "1.30",
|
||||
"MinAPIVersion": "1.12",
|
||||
"GitCommit": "64ddfa6",
|
||||
"GoVersion": "go1.8.7",
|
||||
"Os": "linux",
|
||||
"Arch": "amd64",
|
||||
"BuildTime": "Mon Jul 9 23:38:38 2018",
|
||||
"Experimental": "false",
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "Universal Control Plane",
|
||||
Version: "17.06.2-ee-15",
|
||||
Details: map[string]string{
|
||||
"Version": "3.0.3-tp2",
|
||||
"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",
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "Kubernetes",
|
||||
Version: "1.8+",
|
||||
Details: map[string]string{
|
||||
"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: map[string]string{
|
||||
"cni": "v2.0.6",
|
||||
"kube-controllers": "v2.0.5",
|
||||
"node": "v3.0.8",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
vi.Server.Platform.Name = "Docker Enterprise Edition (EE) 2.0"
|
||||
|
||||
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
|
||||
Name: "Engine",
|
||||
Version: "17.06.2-ee-15",
|
||||
Details: map[string]string{
|
||||
"ApiVersion": "1.30",
|
||||
"MinAPIVersion": "1.12",
|
||||
"GitCommit": "64ddfa6",
|
||||
"GoVersion": "go1.8.7",
|
||||
"Os": "linux",
|
||||
"Arch": "amd64",
|
||||
"BuildTime": "Mon Jul 9 23:38:38 2018",
|
||||
"Experimental": "false",
|
||||
tests := []struct {
|
||||
name string
|
||||
format string
|
||||
}{
|
||||
{
|
||||
name: "default",
|
||||
},
|
||||
})
|
||||
|
||||
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
|
||||
Name: "Universal Control Plane",
|
||||
Version: "17.06.2-ee-15",
|
||||
Details: map[string]string{
|
||||
"Version": "3.0.3-tp2",
|
||||
"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",
|
||||
{
|
||||
name: "json",
|
||||
format: "json",
|
||||
},
|
||||
})
|
||||
|
||||
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
|
||||
Name: "Kubernetes",
|
||||
Version: "1.8+",
|
||||
Details: map[string]string{
|
||||
"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: "json template",
|
||||
format: "json",
|
||||
},
|
||||
})
|
||||
}
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
tmpl, err := newVersionTemplate(tc.format)
|
||||
assert.NilError(t, err)
|
||||
|
||||
vi.Server.Components = append(vi.Server.Components, types.ComponentVersion{
|
||||
Name: "Calico",
|
||||
Version: "v3.0.8",
|
||||
Details: map[string]string{
|
||||
"cni": "v2.0.6",
|
||||
"kube-controllers": "v2.0.5",
|
||||
"node": "v3.0.8",
|
||||
},
|
||||
})
|
||||
|
||||
t.Run("default", func(t *testing.T) {
|
||||
cli := test.NewFakeCli(&fakeClient{})
|
||||
tmpl, err := newVersionTemplate("")
|
||||
assert.NilError(t, err)
|
||||
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
|
||||
assert.Check(t, golden.String(cli.OutBuffer().String(), "docker-client-version.golden"))
|
||||
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
|
||||
})
|
||||
t.Run("json", func(t *testing.T) {
|
||||
cli := test.NewFakeCli(&fakeClient{})
|
||||
tmpl, err := newVersionTemplate("json")
|
||||
assert.NilError(t, err)
|
||||
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
|
||||
assert.Check(t, golden.String(cli.OutBuffer().String(), "docker-client-version.json.golden"))
|
||||
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
|
||||
})
|
||||
t.Run("json template", func(t *testing.T) {
|
||||
cli := test.NewFakeCli(&fakeClient{})
|
||||
tmpl, err := newVersionTemplate("{{json .}}")
|
||||
assert.NilError(t, err)
|
||||
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
|
||||
assert.Check(t, golden.String(cli.OutBuffer().String(), "docker-client-version.json.golden"))
|
||||
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
|
||||
})
|
||||
cli := test.NewFakeCli(&fakeClient{})
|
||||
assert.NilError(t, prettyPrintVersion(cli, vi, tmpl))
|
||||
assert.Check(t, golden.String(cli.OutBuffer().String(), t.Name()+".golden"))
|
||||
assert.Check(t, is.Equal("", cli.ErrBuffer().String()))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user