github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+incompatible/integration/v6/push/app_flags_test.go (about)

     1  package push
     2  
     3  import (
     4  	"fmt"
     5  	"regexp"
     6  	"time"
     7  
     8  	"code.cloudfoundry.org/cli/integration/helpers"
     9  	. "github.com/onsi/ginkgo"
    10  	. "github.com/onsi/gomega"
    11  	. "github.com/onsi/gomega/gbytes"
    12  	. "github.com/onsi/gomega/gexec"
    13  )
    14  
    15  var _ = Describe("push with various flags and no manifest", func() {
    16  	var (
    17  		appName string
    18  	)
    19  
    20  	BeforeEach(func() {
    21  		appName = helpers.NewAppName()
    22  	})
    23  
    24  	It("creates the app with the specified settings, with the health check type", func() {
    25  		helpers.WithHelloWorldApp(func(dir string) {
    26  			session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir},
    27  				PushCommandName, appName,
    28  				"-b", "staticfile_buildpack",
    29  				"-c", fmt.Sprintf("echo 'hi' && %s", helpers.StaticfileBuildpackStartCommand),
    30  				"-u", "port", //works if this stuff is commentted out
    31  				"-k", "300M",
    32  				"-i", "2",
    33  				"-m", "70M",
    34  				"-s", "cflinuxfs2",
    35  				"-t", "180",
    36  			)
    37  			Eventually(session).Should(Say(`Getting app info\.\.\.`))
    38  			Eventually(session).Should(Say(`Creating app with these attributes\.\.\.`))
    39  			Eventually(session).Should(Say(`\+\s+name:\s+%s`, appName))
    40  			Eventually(session).Should(Say(`(?m)\s+buildpacks:\s+\+\s+staticfile_buildpack`))
    41  			Eventually(session).Should(Say(`\s+command:\s+echo 'hi' && %s`, regexp.QuoteMeta(helpers.StaticfileBuildpackStartCommand)))
    42  			Eventually(session).Should(Say(`\s+disk quota:\s+300M`))
    43  			Eventually(session).Should(Say(`\s+health check timeout:\s+180`))
    44  			Eventually(session).Should(Say(`\s+health check type:\s+port`))
    45  			Eventually(session).Should(Say(`\s+instances:\s+2`))
    46  			Eventually(session).Should(Say(`\s+memory:\s+70M`))
    47  			Eventually(session).Should(Say(`\s+stack:\s+cflinuxfs2`))
    48  			Eventually(session).Should(Say(`\s+routes:`))
    49  			Eventually(session).Should(Say(`(?i)\+\s+%s.%s`, appName, helpers.DefaultSharedDomain()))
    50  			Eventually(session).Should(Say(`Mapping routes\.\.\.`))
    51  			Eventually(session).Should(Say(`Uploading files\.\.\.`))
    52  			Eventually(session).Should(Say("100.00%"))
    53  			Eventually(session).Should(Say(`Waiting for API to complete processing files\.\.\.`))
    54  			helpers.ConfirmStagingLogs(session)
    55  			Eventually(session).Should(Say(`Waiting for app to start\.\.\.`))
    56  			Eventually(session).Should(Say(`requested state:\s+started`))
    57  			Eventually(session).Should(Say(`start command:\s+echo 'hi' && %s`, regexp.QuoteMeta(helpers.StaticfileBuildpackStartCommand)))
    58  			Eventually(session).Should(Exit(0))
    59  		})
    60  
    61  		// output is different from when API version is below 3.27.0
    62  		time.Sleep(5 * time.Second)
    63  		session := helpers.CF("app", appName)
    64  		Eventually(session).Should(Say(`name:\s+%s`, appName))
    65  		Eventually(session).Should(Say(`last uploaded:\s+\w{3} \d{1,2} \w{3} \d{2}:\d{2}:\d{2} \w{3} \d{4}`))
    66  		Eventually(session).Should(Say(`stack:\s+cflinuxfs2`))
    67  		Eventually(session).Should(Say(`buildpacks:\s+staticfile`))
    68  		Eventually(session).Should(Say(`type:\s+web`))
    69  		Eventually(session).Should(Say(`instances:\s+2/2`))
    70  		Eventually(session).Should(Say(`memory usage:\s+70M`))
    71  		Eventually(session).Should(Say(`\s+state\s+since\s+cpu\s+memory\s+disk`))
    72  		Eventually(session).Should(Say(`#0\s+running\s+\d{4}-[01]\d-[0-3]\dT[0-2][0-9]:[0-5]\d:[0-5]\dZ`))
    73  		Eventually(session).Should(Exit(0))
    74  	})
    75  
    76  	It("creates the app with the specified settings, with the health check type being 'http'", func() {
    77  		helpers.WithHelloWorldApp(func(dir string) {
    78  			session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: dir},
    79  				PushCommandName, appName,
    80  				"-b", "staticfile_buildpack",
    81  				"-c", fmt.Sprintf("echo 'hi' && %s", helpers.StaticfileBuildpackStartCommand),
    82  				"-u", "http",
    83  				"-k", "300M",
    84  				"-i", "2",
    85  				"-m", "70M",
    86  				"-s", "cflinuxfs2",
    87  				"-t", "180",
    88  			)
    89  
    90  			Eventually(session).Should(Say(`Getting app info\.\.\.`))
    91  			Eventually(session).Should(Say(`Creating app with these attributes\.\.\.`))
    92  			Eventually(session).Should(Say(`\+\s+name:\s+%s`, appName))
    93  			Eventually(session).Should(Say(`(?m)\s+buildpacks:\s+\+\s+staticfile_buildpack`))
    94  			Eventually(session).Should(Say(`\s+command:\s+echo 'hi' && %s`, regexp.QuoteMeta(helpers.StaticfileBuildpackStartCommand)))
    95  			Eventually(session).Should(Say(`\s+disk quota:\s+300M`))
    96  			Eventually(session).Should(Say(`\s+health check http endpoint:\s+/`))
    97  			Eventually(session).Should(Say(`\s+health check timeout:\s+180`))
    98  			Eventually(session).Should(Say(`\s+health check type:\s+http`))
    99  			Eventually(session).Should(Say(`\s+instances:\s+2`))
   100  			Eventually(session).Should(Say(`\s+memory:\s+70M`))
   101  			Eventually(session).Should(Say(`\s+stack:\s+cflinuxfs`))
   102  			Eventually(session).Should(Say(`\s+routes:`))
   103  			Eventually(session).Should(Say(`(?i)\+\s+%s.%s`, appName, helpers.DefaultSharedDomain()))
   104  			Eventually(session).Should(Say(`Mapping routes\.\.\.`))
   105  			Eventually(session).Should(Say(`Uploading files\.\.\.`))
   106  			Eventually(session).Should(Say("100.00%"))
   107  			Eventually(session).Should(Say(`Waiting for API to complete processing files\.\.\.`))
   108  			helpers.ConfirmStagingLogs(session)
   109  			Eventually(session).Should(Say(`Waiting for app to start\.\.\.`))
   110  			Eventually(session).Should(Say(`requested state:\s+started`))
   111  			Eventually(session).Should(Say(`start command:\s+echo 'hi' && %s`, regexp.QuoteMeta(helpers.StaticfileBuildpackStartCommand)))
   112  			Eventually(session).Should(Exit(0))
   113  		})
   114  
   115  		// output is different from when API version is below 3.27.0
   116  
   117  		time.Sleep(5 * time.Second)
   118  		session := helpers.CF("app", appName)
   119  		Eventually(session).Should(Say(`name:\s+%s`, appName))
   120  		Eventually(session).Should(Say(`last uploaded:\s+\w{3} \d{1,2} \w{3} \d{2}:\d{2}:\d{2} \w{3} \d{4}`))
   121  		Eventually(session).Should(Say(`stack:\s+cflinuxfs`))
   122  		Eventually(session).Should(Say(`buildpacks:\s+staticfile`))
   123  		Eventually(session).Should(Say(`type:\s+web`))
   124  		Eventually(session).Should(Say(`instances:\s+2/2`))
   125  		Eventually(session).Should(Say(`memory usage:\s+70M`))
   126  		Eventually(session).Should(Say(`\s+state\s+since\s+cpu\s+memory\s+disk`))
   127  		Eventually(session).Should(Say(`#0\s+running\s+\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z`))
   128  		Eventually(session).Should(Exit(0))
   129  	})
   130  })