errChan := errChan stopChan := stopChan fakeAdapter.WatchStub = func(key string) (events <-chan storeadapter.WatchEvent, stop chan<- bool, errors <-chan error) { Expect(key).To(Equal(dopplerservice.META_ROOT)) order <- "watch" return nil, stopChan, errChan } fakeAdapter.ListRecursivelyStub = func(key string) (storeadapter.StoreNode, error) { Expect(key).To(Equal(dopplerservice.META_ROOT)) order <- "finder" return storeadapter.StoreNode{}, nil } }) AfterEach(func() { finder.Stop() }) It("watches and finders nodes recursively", func() { Eventually(order).Should(Receive(Equal("watch"))) Eventually(order).Should(Receive(Equal("finder"))) By("an error occurs") Expect(errChan).To(BeSent(errors.New("an error"))) Eventually(order, 2).Should(Receive(Equal("watch"))) Eventually(order).Should(Receive(Equal("finder"))) }) })