github.com/cloudfoundry-attic/cli-with-i18n@v6.32.1-0.20171002233121-7401370d3b85+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 })