Context("when given a zip file", func() { var zipFile string BeforeEach(func() { zipFile = filepath.Join(fixturesDir, "example-app.zip") }) It("extracts the zip when given a zip file", func() { f := func(tempDir string) { for _, file := range allFiles { actualFilePath := filepath.Join(tempDir, file.Path) _, err := os.Stat(actualFilePath) Expect(err).NotTo(HaveOccurred()) } } err := actor.ProcessPath(zipFile, f) Expect(err).NotTo(HaveOccurred()) }) It("calls the provided function with the directory that it extracted to", func() { f := func(tempDir string) { wasCalled = true wasCalledWith = tempDir } err := actor.ProcessPath(zipFile, f) Expect(err).NotTo(HaveOccurred()) Expect(wasCalled).To(BeTrue()) Expect(wasCalledWith).NotTo(Equal(zipFile)) }) It("cleans up the directory that it extracted to", func() {