Skip to content

Commit 1b06646

Browse files
authored
tests(apps): test for apps:info, apps:destroy, and apps:transfer (#235)
1 parent 3997b6e commit 1b06646

1 file changed

Lines changed: 156 additions & 0 deletions

File tree

cmd/apps_test.go

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212

1313
"github.com/deis/workflow-cli/pkg/git"
1414
"github.com/deis/workflow-cli/pkg/testutil"
15+
"github.com/deis/workflow-cli/settings"
1516
)
1617

1718
type expandURLCases struct {
@@ -106,6 +107,161 @@ lorem-ipsum
106107
`, "output")
107108
}
108109

110+
func TestAppsInfo(t *testing.T) {
111+
t.Parallel()
112+
cf, server, err := testutil.NewTestServerAndClient()
113+
if err != nil {
114+
t.Fatal(err)
115+
}
116+
defer server.Close()
117+
var b bytes.Buffer
118+
cmdr := DeisCmd{WOut: &b, ConfigFile: cf}
119+
120+
server.Mux.HandleFunc("/v2/apps/lorem-ipsum/", func(w http.ResponseWriter, r *http.Request) {
121+
testutil.SetHeaders(w)
122+
fmt.Fprintf(w, `{
123+
"uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
124+
"id": "lorem-ipsum",
125+
"owner": "dolar-sit-amet",
126+
"structure": {
127+
"cmd": 1
128+
},
129+
"created": "2016-08-22T17:40:16Z",
130+
"updated": "2016-08-22T17:40:16Z"
131+
}`)
132+
})
133+
134+
server.Mux.HandleFunc("/v2/apps/lorem-ipsum/pods/", func(w http.ResponseWriter, r *http.Request) {
135+
testutil.SetHeaders(w)
136+
fmt.Fprintf(w, `{
137+
"count": 1,
138+
"results": [
139+
{
140+
"state": "up",
141+
"started": "2016-08-22T17:42:16Z",
142+
"name": "lorem-ipsum-cmd-1911796442-48b58",
143+
"release": "v2",
144+
"type": "cmd"
145+
}
146+
]
147+
}`)
148+
})
149+
150+
server.Mux.HandleFunc("/v2/apps/lorem-ipsum/domains/", func(w http.ResponseWriter, r *http.Request) {
151+
testutil.SetHeaders(w)
152+
fmt.Fprintf(w, `{
153+
"count": 1,
154+
"next": null,
155+
"previous": null,
156+
"results": [
157+
{
158+
"owner": "dolar-sit-amet",
159+
"created": "2016-08-22T17:40:16Z",
160+
"updated": "2016-08-22T17:40:16Z",
161+
"app": "lorem-ipsum",
162+
"domain": "lorem-ipsum"
163+
}
164+
]
165+
}`)
166+
})
167+
168+
s, err := settings.Load(cmdr.ConfigFile)
169+
if err != nil {
170+
t.Fatal(err)
171+
}
172+
173+
url, err := cmdr.appURL(s, "lorem-ipsum")
174+
if err != nil {
175+
t.Fatal(err)
176+
}
177+
178+
if url == "" {
179+
url = fmt.Sprintf(noDomainAssignedMsg, "lorem-ipsum")
180+
}
181+
182+
err = cmdr.AppInfo("lorem-ipsum")
183+
assert.NoErr(t, err)
184+
assert.Equal(t, b.String(), `=== lorem-ipsum Application
185+
updated: 2016-08-22T17:40:16Z
186+
uuid: c4aed81c-d1ca-4ff1-ab89-d2151264e1a3
187+
created: 2016-08-22T17:40:16Z
188+
url: `+url+`
189+
owner: dolar-sit-amet
190+
id: lorem-ipsum
191+
192+
=== lorem-ipsum Processes
193+
--- cmd:
194+
lorem-ipsum-cmd-1911796442-48b58 up (v2)
195+
196+
=== lorem-ipsum Domains
197+
lorem-ipsum
198+
199+
`, "output")
200+
}
201+
202+
func TestAppDestroy(t *testing.T) {
203+
t.Parallel()
204+
cf, server, err := testutil.NewTestServerAndClient()
205+
if err != nil {
206+
t.Fatal(err)
207+
}
208+
defer server.Close()
209+
var b bytes.Buffer
210+
cmdr := DeisCmd{WOut: &b, ConfigFile: cf}
211+
212+
server.Mux.HandleFunc("/v2/apps/lorem-ipsum/", func(w http.ResponseWriter, r *http.Request) {
213+
testutil.SetHeaders(w)
214+
fmt.Fprintf(w, `{
215+
"uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
216+
"id": "lorem-ipsum",
217+
"owner": "dolar-sit-amet",
218+
"structure": {
219+
"cmd": 1
220+
},
221+
"created": "2016-08-22T17:40:16Z",
222+
"updated": "2016-08-22T17:40:16Z"
223+
}`)
224+
})
225+
err = cmdr.AppDestroy("lorem-ipsum", "bad-confirm-string")
226+
assert.Equal(t, err.Error(), `App lorem-ipsum does not match confirm bad-confirm-string, aborting.`, "output")
227+
228+
err = cmdr.AppDestroy("lorem-ipsum", "lorem-ipsum")
229+
assert.NoErr(t, err)
230+
assert.Equal(t, testutil.StripProgress(b.String()), `Destroying lorem-ipsum...
231+
done in 0s
232+
`, "output")
233+
}
234+
235+
func TestAppTransfer(t *testing.T) {
236+
t.Parallel()
237+
cf, server, err := testutil.NewTestServerAndClient()
238+
if err != nil {
239+
t.Fatal(err)
240+
}
241+
defer server.Close()
242+
var b bytes.Buffer
243+
cmdr := DeisCmd{WOut: &b, ConfigFile: cf}
244+
245+
server.Mux.HandleFunc("/v2/apps/lorem-ipsum/", func(w http.ResponseWriter, r *http.Request) {
246+
testutil.SetHeaders(w)
247+
fmt.Fprintf(w, `{
248+
"uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
249+
"id": "lorem-ipsum",
250+
"owner": "dolar-sit-amet",
251+
"structure": {
252+
"cmd": 1
253+
},
254+
"created": "2016-08-22T17:40:16Z",
255+
"updated": "2016-08-22T17:40:16Z"
256+
}`)
257+
})
258+
259+
err = cmdr.AppTransfer("lorem-ipsum", "test-user")
260+
assert.NoErr(t, err)
261+
assert.Equal(t, testutil.StripProgress(b.String()), `Transferring lorem-ipsum to test-user... done
262+
`, "output")
263+
}
264+
109265
func TestExpandUrl(t *testing.T) {
110266
checks := []expandURLCases{
111267
{

0 commit comments

Comments
 (0)