Expect(fakeWebsocket.ReadMessages()[1]).To(Equal(messageTwoBytes))
		})

		It("sets write deadline", func() {
			go websocketSink.Run(inputChan)
			message, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "hello world", "appId", "App"), "origin")
			inputChan <- message
			Eventually(fakeWebsocket.WriteDeadline).Should(BeTemporally("~", time.Now().Add(writeTimeout), time.Millisecond*5))
		})

		Describe("SetCounter", func() {
			var counter *fakeCounter

			BeforeEach(func() {
				counter = &fakeCounter{
					incrementCalls: make(chan struct{}),
				}
				websocketSink.SetCounter(counter)
			})

			It("uses the passed in counter", func() {
				go websocketSink.Run(inputChan)
				message, _ := emitter.Wrap(factories.NewLogMessage(events.LogMessage_OUT, "hello world", "appId", "App"), "origin")
				inputChan <- message
				Eventually(counter.incrementCalls).Should(Receive())
				Consistently(counter.incrementCalls).ShouldNot(Receive())
			})
		})
	})
})