Context("message expiry", func() { BeforeEach(func() { messageaggregator.MaxTTL = 0 }) It("does not send a combined event if the stop event doesn't arrive within the TTL", func() { messageAggregator.Write(createStartMessage(123, events.PeerType_Client)) time.Sleep(1) messageAggregator.Write(createStopMessage(123, events.PeerType_Client)) Consistently(func() int { return len(mockWriter.Events) }).Should(Equal(0)) }) }) var metricValue = func(name string) interface{} { for _, metric := range messageAggregator.Emit().Metrics { if metric.Name == name { return metric.Value } } return nil } Context("metrics", func() { var eventuallyExpectMetric = func(name string, value uint64) { Eventually(func() interface{} { return metricValue(name) }).Should(Equal(value), fmt.Sprintf("Metric %s was incorrect", name)) } It("emits a HTTP start counter", func() {