Eventually(pipelineDB.LeaseSchedulingCallCount).Should(BeNumerically(">=", 1)) duration := pipelineDB.LeaseSchedulingArgsForCall(0) Expect(duration).To(Equal(100 * time.Millisecond)) }) Context("when it can't get the lease", func() { BeforeEach(func() { pipelineDB.LeaseSchedulingReturns(nil, false, nil) }) It("does not do any scheduling", func() { Eventually(pipelineDB.LeaseSchedulingCallCount).Should(Equal(2)) Expect(scheduler.TryNextPendingBuildCallCount()).To(BeZero()) Expect(scheduler.BuildLatestInputsCallCount()).To(BeZero()) }) }) Context("when getting the lease blows up", func() { BeforeEach(func() { pipelineDB.LeaseSchedulingReturns(nil, false, errors.New(":3")) }) It("does not do any scheduling", func() { Eventually(pipelineDB.LeaseSchedulingCallCount).Should(Equal(2)) Expect(scheduler.TryNextPendingBuildCallCount()).To(BeZero()) Expect(scheduler.BuildLatestInputsCallCount()).To(BeZero()) }) })