hbEmitter, err := emitter.NewHeartbeatEmitter(nil, origin) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal("wrappedEmitter is nil")) Expect(hbEmitter).To(BeNil()) }) It("starts periodic heartbeat emission", func() { hbEmitter, err := emitter.NewHeartbeatEmitter(wrappedEmitter, origin) Expect(err).NotTo(HaveOccurred()) Expect(hbEmitter).NotTo(BeNil()) Eventually(func() int { return len(wrappedEmitter.GetMessages()) }).Should(BeNumerically(">=", 2)) }) It("logs an error when heartbeat emission fails", func() { wrappedEmitter.ReturnError = errors.New("fake error") logWriter := new(bytes.Buffer) log.SetOutput(logWriter) hbEmitter, _ := emitter.NewHeartbeatEmitter(wrappedEmitter, origin) Eventually(func() int { return len(wrappedEmitter.GetMessages()) }).Should(BeNumerically(">=", 2)) loggedText := string(logWriter.Bytes()) expectedText := "fake error" Expect(loggedText).To(ContainSubstring(expectedText)) hbEmitter.Close() }) })