Expect(innerBlobstore.CleanUpFileName).To(Equal("/some/file")) }) It("returns error if inner blobstore cleaning up fails", func() { innerBlobstore.CleanUpErr = errors.New("fake-clean-up-error") err := sha1VerifiableBlobstore.CleanUp("/some/file") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-clean-up-error")) }) }) Describe("Create", func() { It("delegates to inner blobstore to create blob and returns sha1 of returned blob", func() { innerBlobstore.CreateBlobID = "fake-blob-id" blobID, sha1, err := sha1VerifiableBlobstore.Create(fixturePath) Expect(err).ToNot(HaveOccurred()) Expect(blobID).To(Equal("fake-blob-id")) Expect(sha1).To(Equal(fixtureSHA1)) Expect(innerBlobstore.CreateFileName).To(Equal(fixturePath)) }) It("returns error if inner blobstore blob creation fails", func() { innerBlobstore.CreateErr = errors.New("fake-create-error") _, _, err := sha1VerifiableBlobstore.Create(fixturePath) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-create-error"))
action = NewFetchLogs(compressor, copier, blobstore, dirProvider) }) It("logs should be asynchronous", func() { Expect(action.IsAsynchronous()).To(BeTrue()) }) It("is not persistent", func() { Expect(action.IsPersistent()).To(BeFalse()) }) Describe("Run", func() { testLogs := func(logType string, filters []string, expectedFilters []string) { copier.FilteredCopyToTempTempDir = "/fake-temp-dir" compressor.CompressFilesInDirTarballPath = "logs_test.tar" blobstore.CreateBlobID = "my-blob-id" logs, err := action.Run(logType, filters) Expect(err).ToNot(HaveOccurred()) var expectedPath string switch logType { case "job": expectedPath = filepath.Join("/fake", "dir", "sys", "log") case "agent": expectedPath = filepath.Join("/fake", "dir", "bosh", "log") } Expect(copier.FilteredCopyToTempDir).To(Equal(expectedPath)) Expect(copier.FilteredCopyToTempFilters).To(Equal(expectedFilters))