db.WatchForDesiredLRPChangesReturns(desiredLRPStop, desiredLRPErrors) db.WatchForActualLRPChangesReturns(actualLRPStop, actualLRPErrors) bbsWatcher = watcher.NewWatcher(logger, db, hub, clock, retryWaitDuration) }) AfterEach(func() { process.Signal(os.Interrupt) Eventually(process.Wait()).Should(Receive()) }) Describe("starting", func() { Context("when the hub initially reports no subscribers", func() { BeforeEach(func() { hub.RegisterCallbackStub = func(cb func(int)) { cb(0) } process = ifrit.Invoke(bbsWatcher) }) It("does not request a watch", func() { Consistently(db.WatchForDesiredLRPChangesCallCount).Should(BeZero()) Consistently(db.WatchForActualLRPChangesCallCount).Should(BeZero()) }) Context("and then the hub reports a subscriber", func() { var callback func(int) BeforeEach(func() { Expect(hub.RegisterCallbackCallCount()).To(Equal(1)) callback = hub.RegisterCallbackArgsForCall(0)