info, err := os.Lstat(filepath.Join(dest, "example-app/ignore-me")) Expect(err).NotTo(HaveOccurred()) expectedFileMode = fmt.Sprintf("%#o", info.Mode()) return nil } }) It("extracts the zip", func() { fileutils.TempDir("gather-files", func(tmpDir string, err error) { Expect(err).NotTo(HaveOccurred()) _, _, err = actor.GatherFiles(appDir, tmpDir) Expect(err).NotTo(HaveOccurred()) Expect(zipper.UnzipCallCount()).To(Equal(1)) }) }) It("returns files list with file mode populated", func() { fileutils.TempDir("gather-files", func(tmpDir string, err error) { actualFiles, _, err := actor.GatherFiles(appDir, tmpDir) Expect(err).NotTo(HaveOccurred()) expectedFiles := []resources.AppFileResource{ resources.AppFileResource{ Path: "example-app/ignore-me", Mode: expectedFileMode, },
}) AfterEach(func() { os.RemoveAll(tmpDir) }) Context("when we cannot reach CC", func() { var expectedErr error BeforeEach(func() { expectedErr = errors.New("error") appBitsRepo.GetApplicationFilesReturns(nil, expectedErr) }) It("returns an error if we cannot reach the cc", func() { _, _, err := actor.GatherFiles(allFiles, appDir, tmpDir) Expect(err).To(HaveOccurred()) Expect(err).To(Equal(expectedErr)) }) }) Context("when we cannot copy the app files", func() { var expectedErr error BeforeEach(func() { expectedErr = errors.New("error") appFiles.CopyFilesReturns(expectedErr) }) It("returns an error", func() { _, _, err := actor.GatherFiles(allFiles, appDir, tmpDir)
zipper.UnzipReturns(nil) appFiles.AppFilesInDirReturns(allFiles, nil) appBitsRepo.GetApplicationFilesReturns(presentFiles, nil) }) AfterEach(func() { }) Context("when the input is a zipfile", func() { BeforeEach(func() { zipper.IsZipFileReturns(true) }) It("extracts the zip", func() { fileutils.TempDir("gather-files", func(tmpDir string, err error) { files, _, err := actor.GatherFiles(appDir, tmpDir) Expect(zipper.UnzipCallCount()).To(Equal(1)) Expect(err).NotTo(HaveOccurred()) Expect(files).To(Equal(presentFiles)) }) }) }) Context("when the input is a directory full of files", func() { BeforeEach(func() { zipper.IsZipFileReturns(false) }) It("does not try to unzip the directory", func() { fileutils.TempDir("gather-files", func(tmpDir string, err error) {