}) It("sets the expiration to null", func() { volumes, err := database.GetVolumes() Expect(err).NotTo(HaveOccurred()) Expect(len(volumes)).To(Equal(1)) Expect(volumes[0].TTL).To(Equal(time.Duration(0))) Expect(volumes[0].ExpiresIn).To(Equal(time.Duration(0))) }) }) }) }) Describe("GetVolumesForOneOffBuildImageResources", func() { It("returns all volumes containing image resource versions which were used in one-off builds", func() { oneOffBuildA, err := database.CreateOneOffBuild() Expect(err).NotTo(HaveOccurred()) oneOffBuildB, err := database.CreateOneOffBuild() Expect(err).NotTo(HaveOccurred()) jobBuild, err := pipelineDB.CreateJobBuild("some-job") Expect(err).NotTo(HaveOccurred()) // To show that it returns volumes that are used in both one-off builds and job builds volume1 := db.Volume{ WorkerName: "worker-1", TTL: 2 * time.Minute, Handle: "volume-1", VolumeIdentifier: db.VolumeIdentifier{ ResourceVersion: atc.Version{"digest": "digest-1"}, ResourceHash: `docker:{"repository":"repository-1"}`, },
It("saves a pipe to the db", func() { myGuid, err := uuid.NewV4() Expect(err).NotTo(HaveOccurred()) err = database.CreatePipe(myGuid.String(), "a-url") Expect(err).NotTo(HaveOccurred()) pipe, err := database.GetPipe(myGuid.String()) Expect(err).NotTo(HaveOccurred()) Expect(pipe.ID).To(Equal(myGuid.String())) Expect(pipe.URL).To(Equal("a-url")) }) }) It("saves and propagates events correctly", func() { build, err := database.CreateOneOffBuild() Expect(err).NotTo(HaveOccurred()) Expect(build.Name).To(Equal("1")) By("allowing you to subscribe when no events have yet occurred") events, err := database.GetBuildEvents(build.ID, 0) Expect(err).NotTo(HaveOccurred()) defer events.Close() By("saving them in order") err = database.SaveBuildEvent(build.ID, event.Log{ Payload: "some ", }) Expect(err).NotTo(HaveOccurred())
actualBuildOutput, err := database.GetBuildVersionedResources(build.ID) expectedBuildOutput.CheckOrder = 0 Expect(err).ToNot(HaveOccurred()) Expect(len(actualBuildOutput)).To(Equal(1)) Expect(actualBuildOutput[0]).To(Equal(expectedBuildOutput)) }) Context("build creation", func() { var ( oneOff db.Build err error ) BeforeEach(func() { oneOff, err = database.CreateOneOffBuild() Expect(err).NotTo(HaveOccurred()) }) It("can get (no) resources from a one-off build", func() { inputs, outputs, err := database.GetBuildResources(oneOff.ID) Expect(err).NotTo(HaveOccurred()) Expect(inputs).To(BeEmpty()) Expect(outputs).To(BeEmpty()) }) It("can create one-off builds with increasing names", func() { Expect(oneOff.ID).NotTo(BeZero()) Expect(oneOff.JobName).To(BeZero()) Expect(oneOff.Name).To(Equal("1"))