}) It("cleans up the directory that it extracted to", func() { var tempDirWas string f := func(tempDir string) { tempDirWas = tempDir } err := actor.ProcessPath(zipFile, f) Expect(err).NotTo(HaveOccurred()) _, err = os.Stat(tempDirWas) Expect(err).To(HaveOccurred()) }) It("returns an error if the unzipping fails", func() { e := errors.New("some-error") fakezipper.UnzipReturns(e) fakezipper.IsZipFileReturns(true) actor = actors.NewPushActor(appBitsRepo, fakezipper, appFiles) f := func(tempDir string) {} err := actor.ProcessPath(zipFile, f) Expect(err).To(HaveOccurred()) }) }) It("calls the provided function with the provided directory", func() { appDir = filepath.Join(fixturesDir, "example-app") f := func(tempDir string) { wasCalled = true wasCalledWith = tempDir }
allFiles = []models.AppFileFields{ models.AppFileFields{Path: "example-app/.cfignore"}, models.AppFileFields{Path: "example-app/app.rb"}, models.AppFileFields{Path: "example-app/config.ru"}, models.AppFileFields{Path: "example-app/Gemfile"}, models.AppFileFields{Path: "example-app/Gemfile.lock"}, models.AppFileFields{Path: "example-app/ignore-me"}, models.AppFileFields{Path: "example-app/manifest.yml"}, } presentFiles = []resources.AppFileResource{ resources.AppFileResource{Path: "example-app/ignore-me"}, } appDir = filepath.Join(fixturesDir, "example-app.zip") zipper.UnzipReturns(nil) appFiles.AppFilesInDirReturns(allFiles, nil) appBitsRepo.GetApplicationFilesReturns(presentFiles, nil) }) AfterEach(func() { }) Context("when the input is a zipfile", func() { var expectedFileMode string BeforeEach(func() { zipper.IsZipFileReturns(true) zipper.UnzipStub = func(source string, dest string) error { err := os.Mkdir(filepath.Join(dest, "example-app"), os.ModeDir|os.ModePerm)