github.com/arunkumar7540/cli@v6.45.0+incompatible/integration/v7/push/name_only_test.go (about)

     1  package push
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/integration/helpers"
     5  	. "github.com/onsi/ginkgo"
     6  	. "github.com/onsi/gomega"
     7  	. "github.com/onsi/gomega/gbytes"
     8  	. "github.com/onsi/gomega/gexec"
     9  )
    10  
    11  var _ = When("only the name is provided", func() {
    12  	var (
    13  		appName  string
    14  		userName string
    15  	)
    16  
    17  	BeforeEach(func() {
    18  		appName = helpers.PrefixedRandomName("app")
    19  		userName, _ = helpers.GetCredentials()
    20  	})
    21  
    22  	When("the app does not already exist", func() {
    23  		It("creates a new app", func() {
    24  			helpers.WithHelloWorldApp(func(appDir string) {
    25  				session := helpers.CustomCF(
    26  					helpers.CFEnv{WorkingDirectory: appDir},
    27  					PushCommandName, appName,
    28  				)
    29  
    30  				Eventually(session).Should(Say(`Creating app %s\.\.\.`, appName))
    31  				Eventually(session).Should(Say(`Pushing app %s to org %s / space %s as %s\.\.\.`, appName, organization, space, userName))
    32  				Eventually(session).Should(Say(`Getting app info\.\.\.`))
    33  				Eventually(session).Should(Say(`Packaging files to upload\.\.\.`))
    34  				Eventually(session).Should(Say(`Uploading files\.\.\.`))
    35  				Eventually(session).Should(Say(`100.00%`))
    36  				Eventually(session).Should(Say(`Waiting for API to complete processing files\.\.\.`))
    37  				Eventually(session).Should(Say(`Staging app and tracing logs\.\.\.`))
    38  				Eventually(session).Should(Say(`Waiting for app %s to start\.\.\.`, appName))
    39  				Eventually(session).Should(Say(`name:\s+%s`, appName))
    40  				Eventually(session).Should(Say(`requested state:\s+started`))
    41  				Eventually(session).Should(Say(`routes:\s+%s.%s`, appName, helpers.DefaultSharedDomain()))
    42  				Eventually(session).Should(Say(`type:\s+web`))
    43  				Eventually(session).Should(Say(`start command:\s+%s`, helpers.StaticfileBuildpackStartCommand))
    44  				Eventually(session).Should(Exit(0))
    45  			})
    46  		})
    47  	})
    48  
    49  	When("the app exists", func() {
    50  		BeforeEach(func() {
    51  			helpers.WithHelloWorldApp(func(appDir string) {
    52  				Eventually(helpers.CustomCF(helpers.CFEnv{WorkingDirectory: appDir},
    53  					PushCommandName, appName,
    54  				)).Should(Exit(0))
    55  			})
    56  		})
    57  
    58  		It("pushes the app", func() {
    59  			helpers.WithHelloWorldApp(func(appDir string) {
    60  				session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: appDir},
    61  					PushCommandName, appName,
    62  				)
    63  
    64  				Eventually(session).Should(Say(`Updating app %s\.\.\.`, appName))
    65  				Eventually(session).Should(Say(`Pushing app %s to org %s / space %s as %s\.\.\.`, appName, organization, space, userName))
    66  				Eventually(session).Should(Say(`Getting app info\.\.\.`))
    67  				Eventually(session).Should(Say(`Packaging files to upload\.\.\.`))
    68  				Eventually(session).Should(Say(`Uploading files\.\.\.`))
    69  				Eventually(session).Should(Say(`100.00%`))
    70  				Eventually(session).Should(Say(`Waiting for API to complete processing files\.\.\.`))
    71  				Eventually(session).Should(Say(`Staging app and tracing logs\.\.\.`))
    72  				Eventually(session).Should(Say(`Waiting for app %s to start\.\.\.`, appName))
    73  				Eventually(session).Should(Say(`name:\s+%s`, appName))
    74  				Eventually(session).Should(Say(`requested state:\s+started`))
    75  				Eventually(session).Should(Say(`routes:\s+%s.%s`, appName, helpers.DefaultSharedDomain()))
    76  				Eventually(session).Should(Say(`type:\s+web`))
    77  				Eventually(session).Should(Say(`start command:\s+%s`, helpers.StaticfileBuildpackStartCommand))
    78  				Eventually(session).Should(Exit(0))
    79  			})
    80  		})
    81  	})
    82  
    83  	When("the app crashes", func() {
    84  		It("pushes the app", func() {
    85  			helpers.WithCrashingApp(func(appDir string) {
    86  				session := helpers.CustomCF(helpers.CFEnv{WorkingDirectory: appDir}, PushCommandName, appName)
    87  				Eventually(session).Should(Say(`Creating app %s\.\.\.`, appName))
    88  				Eventually(session).Should(Say(`Pushing app %s to org %s / space %s as %s\.\.\.`, appName, organization, space, userName))
    89  				Eventually(session).Should(Say(`Getting app info\.\.\.`))
    90  				Eventually(session).Should(Say(`Packaging files to upload\.\.\.`))
    91  				Eventually(session).Should(Say(`Uploading files\.\.\.`))
    92  				Eventually(session).Should(Say(`100.00%`))
    93  				Eventually(session).Should(Say(`Waiting for API to complete processing files\.\.\.`))
    94  				Eventually(session).Should(Say(`Staging app and tracing logs\.\.\.`))
    95  				Eventually(session).Should(Say(`Waiting for app %s to start\.\.\.`, appName))
    96  				Eventually(session).Should(Say(`name:\s+%s`, appName))
    97  				Eventually(session).Should(Say(`requested state:\s+started`))
    98  				Eventually(session).Should(Say(`type:\s+web`))
    99  				Eventually(session).Should(Say(`start command:\s+bogus bogus`))
   100  				Eventually(session).Should(Say(`#0\s+crashed`))
   101  				Eventually(session.Err).Should(Say(`Start unsuccessful`))
   102  				Eventually(session.Err).Should(Say(`TIP: use 'cf logs %s --recent' for more information`, appName))
   103  				Eventually(session).Should(Exit(1))
   104  			})
   105  		})
   106  	})
   107  })