BeforeEach(func() { fs.MkdirAll(targetDir, os.ModePerm) }) It("decompresses the blob into the target dir", func() { Expect(fs.FileExists(targetDir)).To(BeTrue()) Expect(compressor.DecompressFileToDirTarballPaths).ToNot(ContainElement(fileName)) err := extractor.Extract(blobID, blobSHA1, targetDir) Expect(err).ToNot(HaveOccurred()) Expect(fs.FileExists(targetDir)).To(BeTrue()) Expect(compressor.DecompressFileToDirTarballPaths).To(ContainElement(fileName)) }) It("does not re-create the target package dir", func() { fs.MkdirAllError = fakeError err := extractor.Extract(blobID, blobSHA1, targetDir) Expect(err).ToNot(HaveOccurred()) }) Context("and decompressing the blob fails", func() { It("returns an error and doesn't remove the target dir", func() { compressor.DecompressFileToDirErr = fakeError Expect(fs.FileExists(targetDir)).To(BeTrue()) err := extractor.Extract(blobID, blobSHA1, targetDir) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal("Decompressing compiled package: BlobID: 'fake-blob-id', BlobSHA1: 'fake-sha1': Initial error")) Expect(fs.FileExists(targetDir)).To(BeTrue()) }) }) })
- fake-package-1 `, ) }) It("returns errors for each invalid job", func() { _, err := reader.Read() Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("Reading job 'fake-job' from archive")) Expect(err.Error()).To(ContainSubstring("Reading job 'fake-job-2' from archive")) }) }) Context("when an extracted job path cannot be created", func() { BeforeEach(func() { fakeFs.MkdirAllError = errors.New("") }) It("returns err", func() { _, err := reader.Read() Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("Creating extracted job path")) }) }) }) Context("when the CPI release manifest is invalid", func() { BeforeEach(func() { fakeFs.WriteFileString("/extracted/release/release.MF", "{") })
writtenFileStats := fs.GetFileTestStat(fakeBlobstorePath + "/some-uuid") Expect(writtenFileStats).ToNot(BeNil()) Expect("fake-file-contents").To(Equal(writtenFileStats.StringContents())) }) It("errs when generating blob id errs", func() { uuidGen.GenerateError = errors.New("some-unfortunate-error") _, _, err := blobstore.Create("some/file") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("some-unfortunate-error")) }) It("errs when mkdir errs", func() { fs.MkdirAllError = errors.New("fake-mkdir-error") _, _, err := blobstore.Create("/fake-file.txt") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-mkdir-error")) }) It("errs when copy file errs", func() { fs.WriteFileString("/fake-file.txt", "fake-file-contents") uuidGen.GeneratedUUID = "some-uuid" fs.CopyFileError = errors.New("fake-copy-file-error") _, _, err := blobstore.Create("/fake-file.txt") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-copy-file-error"))