It("calculates the fingerprint of the rendered", func() { fakeFS.TempDirDir = "fake-rendered-job-list-path" fakeSHA1Calculator.SetCalculateBehavior(map[string]fakebicrypto.CalculateInput{ "fake-rendered-job-list-path": fakebicrypto.CalculateInput{Sha1: "fake-sha1"}, }) archive, err := renderedJobListCompressor.Compress(renderedJobList) Expect(err).ToNot(HaveOccurred()) Expect(archive.Fingerprint()).To(Equal("fake-sha1")) }) It("calculates the SHA1 of the archive", func() { fakeCompressor.CompressFilesInDirTarballPath = "fake-archive-path" fakeSHA1Calculator.SetCalculateBehavior(map[string]fakebicrypto.CalculateInput{ "fake-archive-path": fakebicrypto.CalculateInput{Sha1: "fake-sha1"}, }) archive, err := renderedJobListCompressor.Compress(renderedJobList) Expect(err).ToNot(HaveOccurred()) Expect(archive.SHA1()).To(Equal("fake-sha1")) }) It("deletes the temp dir compressed into the archive", func() { fakeFS.TempDirDir = "fake-rendered-job-list-path" err := fakeFS.MkdirAll("fake-rendered-job-list-path", os.ModePerm) Expect(err).ToNot(HaveOccurred())
dep1 = bistatepkg.CompiledPackageRecord{ BlobID: "fake-dependency-blobstore-id-1", BlobSHA1: "fake-dependency-sha1-1", } mockCompiledPackageRepo.EXPECT().Find(*dependency1).Return(dep1, true, nil).AnyTimes() dep2 = bistatepkg.CompiledPackageRecord{ BlobID: "fake-dependency-blobstore-id-2", BlobSHA1: "fake-dependency-sha1-2", } mockCompiledPackageRepo.EXPECT().Find(*dependency2).Return(dep2, true, nil).AnyTimes() // packaging file created when source is extracted fs.WriteFileString(path.Join(pkg.ExtractedPath, "packaging"), "") compressor.CompressFilesInDirTarballPath = compiledPackageTarballPath record := bistatepkg.CompiledPackageRecord{ BlobID: "fake-blob-id", BlobSHA1: "fake-fingerprint", } expectSave = mockCompiledPackageRepo.EXPECT().Save(*pkg, record).AnyTimes() }) Context("when the compiled package repo already has the package", func() { JustBeforeEach(func() { compiledPkgRecord := bistatepkg.CompiledPackageRecord{ BlobSHA1: "fake-fingerprint", } expectFind.Return(compiledPkgRecord, true, nil).Times(1) })
) releaseJobs := []bireljob.Job{releaseJob} jobProperties := biproperty.Map{ "fake-installation-property": "fake-installation-property-value", } globalProperties := biproperty.Map{} deploymentName := "fake-installation-name" renderedJobList = bitemplate.NewRenderedJobList() renderedJobList.Add(bitemplate.NewRenderedJob(releaseJob, "/fake-rendered-job-cpi", fakeFS, logger)) expectJobRender = mockJobListRenderer.EXPECT().Render(releaseJobs, jobProperties, globalProperties, deploymentName).Return(renderedJobList, nil).AnyTimes() fakeCompressor.CompressFilesInDirTarballPath = "/fake-rendered-job-tarball-cpi.tgz" fakeBlobstore.CreateBlobIDs = []string{"fake-rendered-job-tarball-blobstore-id-cpi"} fakeBlobstore.CreateFingerprints = []string{"fake-rendered-job-tarball-sha1-cpi"} }) Describe("RenderAndUploadFrom", func() { It("logs compile & render stages", func() { _, err := renderer.RenderAndUploadFrom(manifest, releaseJobs, fakeStage) Expect(err).ToNot(HaveOccurred()) Expect(fakeStage.PerformCalls).To(Equal([]*fakebiui.PerformCall{ // compile stages not produced by mockDependencyCompiler {Name: "Rendering job templates"}, })) })