{ "uris":["wibble.com"], "host":"1.1.1.1", "port":11 } `))) Expect(unregisteredPayloads).To(ContainElement(MatchJSON(` { "uris":["baz.com"], "host":"3.3.3.3", "port":33 } `))) }) Context("when the nats client errors", func() { BeforeEach(func() { natsClient.WhenPublishing("router.register", func(*nats.Msg) error { return errors.New("bam") }) }) It("should error", func() { Expect(emitter.Emit(messagesToEmit)).To(MatchError(errors.New("bam"))) }) }) }) })
process = ifrit.Invoke(syncerRunner) }) AfterEach(func() { process.Signal(os.Interrupt) Eventually(process.Wait()).Should(Receive(BeNil())) close(shutdown) close(routerStartMessages) }) Describe("getting the heartbeat interval from the router", func() { var greetings chan *nats.Msg BeforeEach(func() { greetings = make(chan *nats.Msg, 3) natsClient.WhenPublishing("router.greet", func(msg *nats.Msg) error { greetings <- msg return nil }) }) Context("when the router emits a router.start", func() { Context("using an interval", func() { JustBeforeEach(func() { routerStartMessages <- &nats.Msg{ Data: []byte(`{ "minimumRegisterIntervalInSeconds":1, "pruneThresholdInSeconds": 3 }`), } }) It("should emit routes with the frequency of the passed-in-interval", func() {