Logger: lagertest.NewTestLogger("test"), DB: pipelineDB, Scheduler: scheduler, Noop: noop, Interval: 100 * time.Millisecond, }) }) AfterEach(func() { ginkgomon.Interrupt(process) }) It("signs the scheduling lease for the pipeline", func() { 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()) }) })