close(mockStoreAdapter.WatchOutput.errors)
			close(mockStoreAdapter.WatchOutput.events)
			close(mockStoreAdapter.WatchOutput.stop)
			close(mockStoreAdapter.ListRecursivelyOutput.ret1)
		})

		JustBeforeEach(func() {
			metaNode, legacyNode = etcdNodes(metaServers, legacyServers)
			mockStoreAdapter.ListRecursivelyOutput.ret0 <- metaNode
			mockStoreAdapter.ListRecursivelyOutput.ret0 <- legacyNode
			finder.Start()
		})

		Context("valid server urls", func() {
			It("returns Doppler's websocket connection url", func() {
				websocketServers := finder.WebsocketServers()

				for _, server := range expectedServers {
					Expect(websocketServers).To(ContainElement(server))
				}
			})
		})

		Context("invalid server urls", func() {
			BeforeEach(func() {
				legacyServers["z1/doppler_z1/5"] = "%"
			})

			It("are ignored", func() {
				websocketServers := finder.WebsocketServers()
				Expect(websocketServers).To(HaveLen(len(expectedServers)))