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 } err := actor.ProcessPath(appDir, f)
} 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) Expect(err).NotTo(HaveOccurred()) f, err := os.Create(filepath.Join(dest, "example-app/ignore-me")) Expect(err).NotTo(HaveOccurred()) defer f.Close() err = ioutil.WriteFile(filepath.Join(dest, "example-app/ignore-me"), []byte("This is a test file"), os.ModePerm) info, err := os.Lstat(filepath.Join(dest, "example-app/ignore-me")) Expect(err).NotTo(HaveOccurred()) expectedFileMode = fmt.Sprintf("%#o", info.Mode())