github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/integration/push/path_test.go (about)

     1  package push
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"regexp"
     7  
     8  	"code.cloudfoundry.org/cli/integration/helpers"
     9  
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  	. "github.com/onsi/gomega/gbytes"
    13  	. "github.com/onsi/gomega/gexec"
    14  )
    15  
    16  var _ = Describe("pushing a path with the -p flag", func() {
    17  	var (
    18  		appName string
    19  	)
    20  
    21  	BeforeEach(func() {
    22  		appName = helpers.NewAppName()
    23  	})
    24  
    25  	Context("pushing a directory", func() {
    26  		Context("when the directory contains files", func() {
    27  			It("pushes the app from the directory", func() {
    28  				helpers.WithHelloWorldApp(func(appDir string) {
    29  					session := helpers.CF(PushCommandName, appName, "-p", appDir)
    30  
    31  					Eventually(session).Should(Say("Getting app info\\.\\.\\."))
    32  					Eventually(session).Should(Say("Creating app with these attributes\\.\\.\\."))
    33  					Eventually(session).Should(Say("path:\\s+%s", regexp.QuoteMeta(appDir)))
    34  					Eventually(session).Should(Say("routes:"))
    35  					Eventually(session).Should(Say("Mapping routes\\.\\.\\."))
    36  					Eventually(session).Should(Say("Comparing local files to remote cache\\.\\.\\."))
    37  					Eventually(session).Should(Say("Packaging files to upload\\.\\.\\."))
    38  					Eventually(session).Should(Say("Uploading files\\.\\.\\."))
    39  					Eventually(session).Should(Say("Waiting for API to complete processing files\\.\\.\\."))
    40  					Eventually(session).Should(Say("Staging app and tracing logs\\.\\.\\."))
    41  					Eventually(session).Should(Say("name:\\s+%s", appName))
    42  
    43  					Eventually(session).Should(Exit(0))
    44  				})
    45  			})
    46  		})
    47  
    48  		Context("when the directory is empty", func() {
    49  			var emptyDir string
    50  
    51  			BeforeEach(func() {
    52  				var err error
    53  				emptyDir, err = ioutil.TempDir("", "integration-push-path-empty")
    54  				Expect(err).ToNot(HaveOccurred())
    55  			})
    56  
    57  			AfterEach(func() {
    58  				Expect(os.RemoveAll(emptyDir)).ToNot(HaveOccurred())
    59  			})
    60  
    61  			It("returns an error", func() {
    62  				session := helpers.CF(PushCommandName, appName, "-p", emptyDir)
    63  				Eventually(session.Err).Should(Say("No app files found in '%s'", regexp.QuoteMeta(emptyDir)))
    64  				Eventually(session).Should(Exit(1))
    65  			})
    66  		})
    67  	})
    68  
    69  	Context("pushing a zip file", func() {
    70  		var archive string
    71  
    72  		BeforeEach(func() {
    73  			helpers.WithHelloWorldApp(func(appDir string) {
    74  				tmpfile, err := ioutil.TempFile("", "push-archive-integration")
    75  				Expect(err).ToNot(HaveOccurred())
    76  				archive = tmpfile.Name()
    77  				Expect(tmpfile.Close()).ToNot(HaveOccurred())
    78  
    79  				err = helpers.Zipit(appDir, archive, "")
    80  				Expect(err).ToNot(HaveOccurred())
    81  			})
    82  		})
    83  
    84  		AfterEach(func() {
    85  			Expect(os.RemoveAll(archive)).ToNot(HaveOccurred())
    86  		})
    87  
    88  		It("pushes the app from the zip file", func() {
    89  			session := helpers.CF(PushCommandName, appName, "-p", archive)
    90  
    91  			Eventually(session).Should(Say("Getting app info\\.\\.\\."))
    92  			Eventually(session).Should(Say("Creating app with these attributes\\.\\.\\."))
    93  			Eventually(session).Should(Say("path:\\s+%s", regexp.QuoteMeta(archive)))
    94  			Eventually(session).Should(Say("routes:"))
    95  			Eventually(session).Should(Say("Mapping routes\\.\\.\\."))
    96  			Eventually(session).Should(Say("Comparing local files to remote cache\\.\\.\\."))
    97  			Eventually(session).Should(Say("Packaging files to upload\\.\\.\\."))
    98  			Eventually(session).Should(Say("Uploading files\\.\\.\\."))
    99  			Eventually(session).Should(Say("Waiting for API to complete processing files\\.\\.\\."))
   100  			Eventually(session).Should(Say("Staging app and tracing logs\\.\\.\\."))
   101  			Eventually(session).Should(Say("name:\\s+%s", appName))
   102  
   103  			Eventually(session).Should(Exit(0))
   104  		})
   105  	})
   106  })