Eventually(table.SwapCallCount).Should(Equal(1)) Expect(bbsClient.ActualLRPGroupsCallCount()).To(Equal(2)) }) }) Context("when fetching desireds fails", func() { var returnError int32 BeforeEach(func() { returnError = 1 bbsClient.DesiredLRPSchedulingInfosStub = func(filter models.DesiredLRPFilter) ([]*models.DesiredLRPSchedulingInfo, error) { if atomic.LoadInt32(&returnError) == 1 { return nil, errors.New("bam") } return []*models.DesiredLRPSchedulingInfo{}, nil } }) It("should not call sync until the error resolves", func() { Eventually(bbsClient.DesiredLRPSchedulingInfosCallCount).Should(Equal(1)) Consistently(table.SwapCallCount).Should(Equal(0)) atomic.StoreInt32(&returnError, 0) syncEvents.Sync <- struct{}{} Eventually(table.SwapCallCount).Should(Equal(1)) Expect(bbsClient.DesiredLRPSchedulingInfosCallCount()).To(Equal(2)) })