Expect(os.Chdir(prevDir)).To(Succeed()) Expect(os.RemoveAll(exportDir)).To(Succeed()) Expect(os.RemoveAll(workingDir)).To(Succeed()) }) It("exports the droplet", func() { dropletReader, err := os.Open(filepath.Join(exportDir, "droppo.tgz")) Expect(err).NotTo(HaveOccurred()) defer dropletReader.Close() metadataReader, err := os.Open(filepath.Join(exportDir, "droppo-metadata.json")) Expect(err).NotTo(HaveOccurred()) defer metadataReader.Close() fakeDropletRunner.ExportDropletReturns(dropletReader, metadataReader, nil) test_helpers.ExecuteCommandWithArgs(exportDropletCommand, []string{"droppo"}) Expect(outputBuffer).To(test_helpers.SayLine("Droplet 'droppo' exported to droppo.tgz and droppo-metadata.json.")) Expect(fakeDropletRunner.ExportDropletCallCount()).To(Equal(1)) Expect(fakeDropletRunner.ExportDropletArgsForCall(0)).To(Equal("droppo")) Expect(os.Stat("droppo.tgz")).NotTo(BeNil()) Expect(os.Stat("droppo-metadata.json")).NotTo(BeNil()) }) Context("when the droplet runner returns errors", func() { It("prints an error", func() { fakeDropletRunner.ExportDropletReturns(nil, nil, errors.New("failed"))