}) }) Describe("taking out a lease on build tracking", func() { var buildID int BeforeEach(func() { build, err := sqlDB.CreateOneOffBuild() Expect(err).NotTo(HaveOccurred()) buildID = build.ID }) Context("when something has been tracking it recently", func() { It("does not get the lease", func() { lease, leased, err := sqlDB.LeaseBuildTracking(buildID, 1*time.Second) Expect(err).NotTo(HaveOccurred()) Expect(leased).To(BeTrue()) lease.Break() _, leased, err = sqlDB.LeaseBuildTracking(buildID, 1*time.Second) Expect(err).NotTo(HaveOccurred()) Expect(leased).To(BeFalse()) }) }) Context("when there has not been any tracking recently", func() { It("gets and keeps the lease and stops others from getting it", func() { lease, leased, err := sqlDB.LeaseBuildTracking(buildID, 1*time.Second) Expect(err).NotTo(HaveOccurred())