It("has Nats connectivity", func() { localIP, err := localip.LocalIP() Expect(err).ToNot(HaveOccurred()) statusPort := test_util.NextAvailPort() proxyPort := test_util.NextAvailPort() cfgFile := filepath.Join(tmpdir, "config.yml") config := createConfig(cfgFile, statusPort, proxyPort, defaultPruneInterval, defaultPruneThreshold, 0, false, natsPort) gorouterSession = startGorouterSession(cfgFile) mbusClient, err := newMessageBus(config) zombieApp := test.NewGreetApp([]route.Uri{"zombie.vcap.me"}, proxyPort, mbusClient, nil) zombieApp.Listen() runningApp := test.NewGreetApp([]route.Uri{"innocent.bystander.vcap.me"}, proxyPort, mbusClient, nil) runningApp.AddHandler("/some-path", func(w http.ResponseWriter, r *http.Request) { defer GinkgoRecover() traceHeader := r.Header.Get(router_http.B3TraceIdHeader) spanIDHeader := r.Header.Get(router_http.B3SpanIdHeader) Expect(traceHeader).ToNot(BeEmpty()) Expect(spanIDHeader).ToNot(BeEmpty()) w.WriteHeader(http.StatusOK) }) runningApp.Listen() routesUri := fmt.Sprintf("http://%s:%s@%s:%d/routes", config.Status.User, config.Status.Pass, localIP, statusPort)
return err == nil }).Should(BeTrue()) }) Context("when LoadBalancerHealthyThreshold is greater than the start response delay", func() { BeforeEach(func() { config.LoadBalancerHealthyThreshold = 2 * time.Second }) It("should log waiting delay value", func() { Expect(logger).Should(gbytes.Say(fmt.Sprintf("Waiting %s before listening", config.LoadBalancerHealthyThreshold))) verify_health(fmt.Sprintf("localhost:%d", statusPort)) }) }) It("registry contains last updated varz", func() { app1 := test.NewGreetApp([]route.Uri{"test1.vcap.me"}, config.Port, mbusClient, nil) app1.Listen() Eventually(func() bool { return appRegistered(registry, app1) }).Should(BeTrue()) time.Sleep(100 * time.Millisecond) initialUpdateTime := fetchRecursively(readVarz(varz), "ms_since_last_registry_update").(float64) app2 := test.NewGreetApp([]route.Uri{"test2.vcap.me"}, config.Port, mbusClient, nil) app2.Listen() Eventually(func() bool { return appRegistered(registry, app2) }).Should(BeTrue())