github.com/gust1n/deis@v0.13.1-0.20141009230754-43ff4d95947b/tests/apps_test.go (about) 1 // +build integration 2 3 package tests 4 5 import ( 6 "os" 7 "testing" 8 9 "github.com/deis/deis/tests/utils" 10 ) 11 12 var ( 13 appsCreateCmd = "apps:create {{.AppName}}" 14 appsCreateCmdNoRemote = "apps:create {{.AppName}} --no-remote" 15 appsListCmd = "apps:list" 16 appsRunCmd = "apps:run echo hello" 17 appsOpenCmd = "apps:open --app={{.AppName}}" 18 appsLogsCmd = "apps:logs --app={{.AppName}}" 19 appsInfoCmd = "apps:info --app={{.AppName}}" 20 appsDestroyCmd = "apps:destroy --app={{.AppName}} --confirm={{.AppName}}" 21 ) 22 23 func TestApps(t *testing.T) { 24 params := appsSetup(t) 25 appsCreateTest(t, params) 26 appsListTest(t, params, false) 27 appsLogsTest(t, params) 28 appsInfoTest(t, params) 29 appsRunTest(t, params) 30 appsOpenTest(t, params) 31 appsDestroyTest(t, params) 32 appsListTest(t, params, true) 33 } 34 35 func appsSetup(t *testing.T) *utils.DeisTestConfig { 36 cfg := utils.GetGlobalConfig() 37 cfg.AppName = "appssample" 38 utils.Execute(t, authLoginCmd, cfg, false, "") 39 utils.Execute(t, gitCloneCmd, cfg, false, "") 40 return cfg 41 } 42 43 func appsCreateTest(t *testing.T, params *utils.DeisTestConfig) { 44 wd, _ := os.Getwd() 45 defer os.Chdir(wd) 46 if err := utils.Chdir(params.ExampleApp); err != nil { 47 t.Fatal(err) 48 } 49 cmd := appsCreateCmd 50 utils.Execute(t, cmd, params, false, "") 51 utils.Execute(t, cmd, params, true, "App with this Id already exists") 52 } 53 54 func appsDestroyTest(t *testing.T, params *utils.DeisTestConfig) { 55 if err := utils.Chdir(params.ExampleApp); err != nil { 56 t.Fatal(err) 57 } 58 utils.Execute(t, appsDestroyCmd, params, false, "") 59 if err := utils.Chdir(".."); err != nil { 60 t.Fatal(err) 61 } 62 if err := utils.Rmdir(params.ExampleApp); err != nil { 63 t.Fatal(err) 64 } 65 } 66 67 func appsInfoTest(t *testing.T, params *utils.DeisTestConfig) { 68 utils.Execute(t, appsInfoCmd, params, false, "") 69 } 70 71 func appsListTest(t *testing.T, params *utils.DeisTestConfig, notflag bool) { 72 utils.CheckList(t, appsListCmd, params, params.AppName, notflag) 73 } 74 75 func appsLogsTest(t *testing.T, params *utils.DeisTestConfig) { 76 cmd := appsLogsCmd 77 // test for application lifecycle logs 78 utils.Execute(t, cmd, params, false, "204 NO CONTENT") 79 if err := utils.Chdir(params.ExampleApp); err != nil { 80 t.Fatal(err) 81 } 82 utils.Execute(t, gitPushCmd, params, false, "") 83 utils.Curl(t, params) 84 utils.Execute(t, cmd, params, false, "created initial release") 85 utils.Execute(t, cmd, params, false, "listening on 5000...") 86 if err := utils.Chdir(".."); err != nil { 87 t.Fatal(err) 88 } 89 } 90 91 func appsOpenTest(t *testing.T, params *utils.DeisTestConfig) { 92 utils.Curl(t, params) 93 } 94 95 func appsRunTest(t *testing.T, params *utils.DeisTestConfig) { 96 cmd := appsRunCmd 97 if err := utils.Chdir(params.ExampleApp); err != nil { 98 t.Fatal(err) 99 } 100 utils.Execute(t, cmd, params, false, "hello") 101 if err := utils.Chdir(".."); err != nil { 102 t.Fatal(err) 103 } 104 utils.Execute(t, cmd, params, true, "Not found") 105 }