MCPcopy
hub / github.com/digitalocean/doctl / TestVersion

Function TestVersion

doit_test.go:49–121  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

47}
48
49func TestVersion(t *testing.T) {
50 slr1 := &stubLatestRelease{version: "0.1.0"}
51 slr2 := &stubLatestRelease{version: "1.0.0"}
52
53 cases := []struct {
54 v Version
55 s string
56 json string
57 ver string
58 slr LatestVersioner
59 }{
60 // version with no label
61 {
62 v: Version{Major: 0, Minor: 1, Patch: 2},
63 s: `doctl version 0.1.2`,
64 json: "{\n \"version\": \"0.1.2\",\n \"latestRelease\": \"0.1.0\"\n}",
65 ver: "0.1.2",
66 slr: slr1,
67 },
68 // version with label
69 {
70 v: Version{Major: 0, Minor: 1, Patch: 2, Label: "dev"},
71 s: `doctl version 0.1.2-dev`,
72 json: "{\n \"version\": \"0.1.2-dev\",\n \"latestRelease\": \"0.1.0\"\n}",
73 ver: "0.1.2-dev",
74 slr: slr1,
75 },
76 // version with label and build
77 {
78 v: Version{Major: 0, Minor: 1, Patch: 2, Label: "dev", Build: "12345"},
79 s: "doctl version 0.1.2-dev\nGit commit hash: 12345",
80 json: "{\n \"version\": \"0.1.2-dev\",\n \"commit\": \"12345\",\n \"latestRelease\": \"0.1.0\"\n}",
81 ver: "0.1.2-dev",
82 slr: slr1,
83 },
84 // version with no label and higher released version
85 {
86 v: Version{Major: 0, Minor: 1, Patch: 2},
87 s: "doctl version 0.1.2\nrelease 1.0.0 is available, check it out! ",
88 json: "{\n \"version\": \"0.1.2\",\n \"latestRelease\": \"1.0.0\",\n \"notification\": \"release 1.0.0 is available, check it out!\"\n}",
89 ver: `0.1.2`,
90 slr: slr2,
91 },
92 // version with dev label and released version
93 {
94 v: Version{Major: 1, Minor: 0, Patch: 0, Label: "dev"},
95 s: "doctl version 1.0.0-dev\nrelease 1.0.0 is available, check it out! ",
96 json: "{\n \"version\": \"1.0.0-dev\",\n \"latestRelease\": \"1.0.0\",\n \"notification\": \"release 1.0.0 is available, check it out!\"\n}",
97 ver: `1.0.0-dev`,
98 slr: slr2,
99 },
100 // version with release label and released version available
101 {
102 v: Version{Major: 1, Minor: 0, Patch: 0, Label: "release"},
103 s: "doctl version 1.0.0-release",
104 json: "{\n \"version\": \"1.0.0-release\",\n \"latestRelease\": \"1.0.0\"\n}",
105 ver: `1.0.0-release`,
106 slr: slr2,

Callers

nothing calls this directly

Calls 4

ErrorfMethod · 0.80
CompleteMethod · 0.80
CompleteJSONMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected