cnsmr.Close()
			Eventually(doneChan).Should(BeClosed())
			close(done)
		}, 10)
	})

	Describe("FirehoseWithoutReconnect", func() {
		var incomingChan chan *events.Envelope
		var streamErrorChan chan error
		var finishedChan chan struct{}

		performWithIdleTimeout := func(idleTimeout time.Duration) {
			streamErrorChan = make(chan error, 10)
			cnsmr = noaa.NewConsumer(trafficControllerUrl, tlsSettings, consumerProxyFunc)
			cnsmr.SetIdleTimeout(idleTimeout)
			go func() {
				streamErrorChan <- cnsmr.FirehoseWithoutReconnect("subscription-id", authToken, incomingChan)
				close(finishedChan)
			}()
		}

		perform := func() {
			performWithIdleTimeout(0)
		}

		BeforeEach(func() {
			incomingChan = make(chan *events.Envelope)
			finishedChan = make(chan struct{})
			startFakeTrafficController()
		})