github.com/adelq/deis@v0.13.2-0.20141021145840-f05550607c59/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  	utils.Execute(t, "apps:run env", params, true, "GIT_SHA")
   102  	if err := utils.Chdir(".."); err != nil {
   103  		t.Fatal(err)
   104  	}
   105  	utils.Execute(t, cmd, params, true, "Not found")
   106  }