})

			It("waits 500ms before reconnecting", func() {
				fakeHandler.Close()

				start := time.Now()
				for i := uint(0); i < retries; i++ {
					Eventually(errors).Should(Receive())
				}
				end := time.Now()
				Expect(end).To(BeTemporally(">=", start.Add(4*500*time.Millisecond)))
			})

			It("will not attempt reconnect if consumer is closed", func() {
				Eventually(errors).Should(Receive())
				Expect(fakeHandler.WasCalled()).To(BeTrue())
				fakeHandler.Reset()
				cnsmr.Close()

				Eventually(errors).Should(BeClosed())
				Consistently(fakeHandler.WasCalled, 2).Should(BeFalse())
			})
		})
	})

	Describe("StreamWithoutReconnect", func() {
		var (
			incoming <-chan *events.Envelope
			errors   <-chan error
		)