github.com/loafoe/cli@v7.1.0+incompatible/integration/v6/push/ignore_app_files_test.go (about) 1 package push 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 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("ignoring files while gathering resources", func() { 17 var ( 18 firstApp string 19 ) 20 21 BeforeEach(func() { 22 firstApp = helpers.NewAppName() 23 }) 24 25 When("the .cfignore file is in the app source directory", func() { 26 When("the .cfignore file doesn't exclude any files", func() { 27 It("pushes all the files", func() { 28 helpers.WithHelloWorldApp(func(dir string) { 29 file1 := filepath.Join(dir, "file1") 30 err := ioutil.WriteFile(file1, nil, 0666) 31 Expect(err).ToNot(HaveOccurred()) 32 33 file2 := filepath.Join(dir, "file2") 34 err = ioutil.WriteFile(file2, nil, 0666) 35 Expect(err).ToNot(HaveOccurred()) 36 37 cfIgnoreFilePath := filepath.Join(dir, ".cfignore") 38 err = ioutil.WriteFile(cfIgnoreFilePath, nil, 0666) 39 Expect(err).ToNot(HaveOccurred()) 40 41 session := helpers.DebugCustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, firstApp, "--no-start") 42 43 Eventually(session.Err).Should(Say("zipped_file_count=4")) 44 Eventually(session).Should(Exit(0)) 45 }) 46 }) 47 }) 48 49 When("the .cfignore file excludes some files", func() { 50 Context("ignored files are relative paths", func() { 51 It("does not push those files", func() { 52 helpers.WithHelloWorldApp(func(dir string) { 53 file1 := filepath.Join(dir, "file1") 54 err := ioutil.WriteFile(file1, nil, 0666) 55 Expect(err).ToNot(HaveOccurred()) 56 57 file2 := filepath.Join(dir, "file2") 58 err = ioutil.WriteFile(file2, nil, 0666) 59 Expect(err).ToNot(HaveOccurred()) 60 61 cfIgnoreFilePath := filepath.Join(dir, ".cfignore") 62 err = ioutil.WriteFile(cfIgnoreFilePath, []byte("file*"), 0666) 63 Expect(err).ToNot(HaveOccurred()) 64 65 session := helpers.DebugCustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, firstApp, "--no-start") 66 67 Eventually(session.Err).Should(Say("zipped_file_count=2")) 68 Eventually(session).Should(Exit(0)) 69 }) 70 }) 71 }) 72 73 Context("with absolute paths - where '/' == appDir", func() { 74 It("does not push those files", func() { 75 helpers.WithHelloWorldApp(func(dir string) { 76 file1 := filepath.Join(dir, "file1") 77 err := ioutil.WriteFile(file1, nil, 0666) 78 Expect(err).ToNot(HaveOccurred()) 79 80 file2 := filepath.Join(dir, "file2") 81 err = ioutil.WriteFile(file2, nil, 0666) 82 Expect(err).ToNot(HaveOccurred()) 83 84 cfIgnoreFilePath := filepath.Join(dir, ".cfignore") 85 err = ioutil.WriteFile(cfIgnoreFilePath, []byte("/file*"), 0666) 86 Expect(err).ToNot(HaveOccurred()) 87 88 session := helpers.DebugCustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, firstApp, "--no-start") 89 90 Eventually(session.Err).Should(Say("zipped_file_count=2")) 91 Eventually(session).Should(Exit(0)) 92 }) 93 }) 94 }) 95 }) 96 }) 97 98 When("the CF_TRACE file is in the app source directory", func() { 99 var previousEnv string 100 101 AfterEach(func() { 102 err := os.Setenv("CF_TRACE", previousEnv) 103 Expect(err).ToNot(HaveOccurred()) 104 }) 105 106 It("does not push it", func() { 107 helpers.WithHelloWorldApp(func(dir string) { 108 traceFilePath := filepath.Join(dir, "i-am-trace.txt") 109 err := ioutil.WriteFile(traceFilePath, nil, 0666) 110 Expect(err).ToNot(HaveOccurred()) 111 112 previousEnv = os.Getenv("CF_TRACE") 113 err = os.Setenv("CF_TRACE", traceFilePath) 114 Expect(err).ToNot(HaveOccurred()) 115 116 session := helpers.DebugCustomCF(helpers.CFEnv{WorkingDirectory: dir}, PushCommandName, firstApp, "--no-start") 117 118 Eventually(session.Err).Should(Say("zipped_file_count=2")) 119 Eventually(session).Should(Exit(0)) 120 }) 121 }) 122 }) 123 })