Skip to content

Commit

Permalink
tests(apps): test for apps:info, apps:destroy, and apps:transfer (#235)
Browse files Browse the repository at this point in the history
  • Loading branch information
ultimateboy committed Sep 15, 2016
1 parent 3997b6e commit 1b06646
Showing 1 changed file with 156 additions and 0 deletions.
156 changes: 156 additions & 0 deletions cmd/apps_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (

"github.com/deis/workflow-cli/pkg/git"
"github.com/deis/workflow-cli/pkg/testutil"
"github.com/deis/workflow-cli/settings"
)

type expandURLCases struct {
Expand Down Expand Up @@ -106,6 +107,161 @@ lorem-ipsum
`, "output")
}

func TestAppsInfo(t *testing.T) {
t.Parallel()
cf, server, err := testutil.NewTestServerAndClient()
if err != nil {
t.Fatal(err)
}
defer server.Close()
var b bytes.Buffer
cmdr := DeisCmd{WOut: &b, ConfigFile: cf}

server.Mux.HandleFunc("/v2/apps/lorem-ipsum/", func(w http.ResponseWriter, r *http.Request) {
testutil.SetHeaders(w)
fmt.Fprintf(w, `{
"uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
"id": "lorem-ipsum",
"owner": "dolar-sit-amet",
"structure": {
"cmd": 1
},
"created": "2016-08-22T17:40:16Z",
"updated": "2016-08-22T17:40:16Z"
}`)
})

server.Mux.HandleFunc("/v2/apps/lorem-ipsum/pods/", func(w http.ResponseWriter, r *http.Request) {
testutil.SetHeaders(w)
fmt.Fprintf(w, `{
"count": 1,
"results": [
{
"state": "up",
"started": "2016-08-22T17:42:16Z",
"name": "lorem-ipsum-cmd-1911796442-48b58",
"release": "v2",
"type": "cmd"
}
]
}`)
})

server.Mux.HandleFunc("/v2/apps/lorem-ipsum/domains/", func(w http.ResponseWriter, r *http.Request) {
testutil.SetHeaders(w)
fmt.Fprintf(w, `{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"owner": "dolar-sit-amet",
"created": "2016-08-22T17:40:16Z",
"updated": "2016-08-22T17:40:16Z",
"app": "lorem-ipsum",
"domain": "lorem-ipsum"
}
]
}`)
})

s, err := settings.Load(cmdr.ConfigFile)
if err != nil {
t.Fatal(err)
}

url, err := cmdr.appURL(s, "lorem-ipsum")
if err != nil {
t.Fatal(err)
}

if url == "" {
url = fmt.Sprintf(noDomainAssignedMsg, "lorem-ipsum")
}

err = cmdr.AppInfo("lorem-ipsum")
assert.NoErr(t, err)
assert.Equal(t, b.String(), `=== lorem-ipsum Application
updated: 2016-08-22T17:40:16Z
uuid: c4aed81c-d1ca-4ff1-ab89-d2151264e1a3
created: 2016-08-22T17:40:16Z
url: `+url+`
owner: dolar-sit-amet
id: lorem-ipsum
=== lorem-ipsum Processes
--- cmd:
lorem-ipsum-cmd-1911796442-48b58 up (v2)
=== lorem-ipsum Domains
lorem-ipsum
`, "output")
}

func TestAppDestroy(t *testing.T) {
t.Parallel()
cf, server, err := testutil.NewTestServerAndClient()
if err != nil {
t.Fatal(err)
}
defer server.Close()
var b bytes.Buffer
cmdr := DeisCmd{WOut: &b, ConfigFile: cf}

server.Mux.HandleFunc("/v2/apps/lorem-ipsum/", func(w http.ResponseWriter, r *http.Request) {
testutil.SetHeaders(w)
fmt.Fprintf(w, `{
"uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
"id": "lorem-ipsum",
"owner": "dolar-sit-amet",
"structure": {
"cmd": 1
},
"created": "2016-08-22T17:40:16Z",
"updated": "2016-08-22T17:40:16Z"
}`)
})
err = cmdr.AppDestroy("lorem-ipsum", "bad-confirm-string")
assert.Equal(t, err.Error(), `App lorem-ipsum does not match confirm bad-confirm-string, aborting.`, "output")

err = cmdr.AppDestroy("lorem-ipsum", "lorem-ipsum")
assert.NoErr(t, err)
assert.Equal(t, testutil.StripProgress(b.String()), `Destroying lorem-ipsum...
done in 0s
`, "output")
}

func TestAppTransfer(t *testing.T) {
t.Parallel()
cf, server, err := testutil.NewTestServerAndClient()
if err != nil {
t.Fatal(err)
}
defer server.Close()
var b bytes.Buffer
cmdr := DeisCmd{WOut: &b, ConfigFile: cf}

server.Mux.HandleFunc("/v2/apps/lorem-ipsum/", func(w http.ResponseWriter, r *http.Request) {
testutil.SetHeaders(w)
fmt.Fprintf(w, `{
"uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
"id": "lorem-ipsum",
"owner": "dolar-sit-amet",
"structure": {
"cmd": 1
},
"created": "2016-08-22T17:40:16Z",
"updated": "2016-08-22T17:40:16Z"
}`)
})

err = cmdr.AppTransfer("lorem-ipsum", "test-user")
assert.NoErr(t, err)
assert.Equal(t, testutil.StripProgress(b.String()), `Transferring lorem-ipsum to test-user... done
`, "output")
}

func TestExpandUrl(t *testing.T) {
checks := []expandURLCases{
{
Expand Down

0 comments on commit 1b06646

Please sign in to comment.