BeforeEach(func() { localIp, _ = localip.LocalIP() conf = config.Config{ JobName: "doppler_z1", Index: 0, EtcdMaxConcurrentRequests: 10, EtcdUrls: []string{"test:123", "test:456"}, Zone: "z1", DropsondeIncomingMessagesPort: 1234, } }) It("sends a heartbeat to etcd", func() { main.StartHeartbeats(localIp, time.Second, &conf, adapter, loggertesthelper.Logger()) Expect(adapter.GetMaintainedNodeName()).To(Equal("/healthstatus/doppler/z1/doppler_z1/0")) Expect(adapter.MaintainedNodeValue).To(Equal([]byte(localIp))) }) Context("when there is an error", func() { It("panics", func() { adapter.MaintainNodeError = errors.New("error") Expect(func() { main.StartHeartbeats(localIp, time.Second, &conf, adapter, loggertesthelper.Logger()) }).To(Panic()) }) }) }) Context("without a valid ETCD config", func() { It("does not send a heartbeat", func() { conf := config.Config{
Expect(func() { announcer.Announce(localIP, time.Second, &conf, adapter, loggertesthelper.Logger()) }).To(Panic()) }) Context("when tls transport is enabled", func() { It("has udp and tcp value", func() { dopplerMeta := fmt.Sprintf(`{"version": 1, "ip": "%s", "transports":[{"protocol":"udp","port":1234},{"protocol":"tls","port":4567}]}`, localIP) conf.EnableTLSTransport = true conf.TLSListenerConfig = config.TLSListenerConfig{ Port: 4567, } announcer.Announce(localIP, time.Second, &conf, adapter, loggertesthelper.Logger()) Expect(adapter.GetMaintainedNodeName()).To(Equal(dopplerKey)) Expect(adapter.MaintainedNodeValue).To(MatchJSON(dopplerMeta)) }) }) Context("when tls transport is disabled", func() { It("has only udp value", func() { dopplerMeta := fmt.Sprintf(`{"version": 1, "ip":"%s","transports":[{"protocol":"udp","port":1234}]}`, localIP) conf.EnableTLSTransport = false announcer.Announce(localIP, time.Second, &conf, adapter, loggertesthelper.Logger()) Expect(adapter.GetMaintainedNodeName()).To(Equal(dopplerKey)) Expect(adapter.MaintainedNodeValue).To(MatchJSON(dopplerMeta)) }) })