@@ -41,7 +41,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
4141 " asynchronous api" should {
4242 " allow websocket connections to the `/connect` endpoint" in Fixture () { url =>
4343 val wsMsgPromise = scala.concurrent.Promise [String ]()
44- cask.util.WsClient .connect(s " $url/connect " ) { case cask.Ws .Text (msg) =>
44+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) { case cask.Ws .Text (msg) =>
4545 wsMsgPromise.success(msg)
4646 }
4747 val wsMsg = Await .result(wsMsgPromise.future, DefaultPromiseAwaitTimeout )
@@ -80,7 +80,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
8080 " allow fetching the result of a completed query using its UUID" in Fixture () { url =>
8181 val wsMsgPromise = scala.concurrent.Promise [String ]()
8282 val connectedPromise = scala.concurrent.Promise [String ]()
83- cask.util.WsClient .connect(s " $url/connect " ) {
83+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) {
8484 case cask.Ws .Text (msg) if msg == " connected" =>
8585 connectedPromise.success(msg)
8686 case cask.Ws .Text (msg) =>
@@ -103,7 +103,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
103103 " use predefined code" in Fixture (" val foo = 40" ) { url =>
104104 val wsMsgPromise = scala.concurrent.Promise [String ]()
105105 val connectedPromise = scala.concurrent.Promise [String ]()
106- cask.util.WsClient .connect(s " $url/connect " ) {
106+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) {
107107 case cask.Ws .Text (msg) if msg == " connected" =>
108108 connectedPromise.success(msg)
109109 case cask.Ws .Text (msg) =>
@@ -126,7 +126,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
126126 " use runBefore code" in Fixture (runBeforeCode = Seq (" import Int.MaxValue" )) { url =>
127127 val wsMsgPromise = scala.concurrent.Promise [String ]()
128128 val connectedPromise = scala.concurrent.Promise [String ]()
129- cask.util.WsClient .connect(s " $url/connect " ) {
129+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) {
130130 case cask.Ws .Text (msg) if msg == " connected" =>
131131 connectedPromise.success(msg)
132132 case cask.Ws .Text (msg) =>
@@ -149,7 +149,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
149149 " disallow fetching the result of a completed query with an invalid auth header" in Fixture () { url =>
150150 val wsMsgPromise = scala.concurrent.Promise [String ]()
151151 val connectedPromise = scala.concurrent.Promise [String ]()
152- cask.util.WsClient .connect(s " $url/connect " ) {
152+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) {
153153 case cask.Ws .Text (msg) if msg == " connected" =>
154154 connectedPromise.success(msg)
155155 case cask.Ws .Text (msg) =>
@@ -172,7 +172,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
172172 url =>
173173 val wsMsgPromise = scala.concurrent.Promise [String ]()
174174 val connectedPromise = scala.concurrent.Promise [String ]()
175- cask.util.WsClient .connect(s " $url/connect " ) {
175+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) {
176176 case cask.Ws .Text (msg) if msg == " connected" =>
177177 connectedPromise.success(msg)
178178 case cask.Ws .Text (msg) =>
@@ -199,7 +199,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
199199 " write a well-formatted message to a websocket connection when a query failed evaluation" in Fixture () { url =>
200200 val wsMsgPromise = scala.concurrent.Promise [String ]()
201201 val connectedPromise = scala.concurrent.Promise [String ]()
202- cask.util.WsClient .connect(s " $url/connect " ) {
202+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) {
203203 case cask.Ws .Text (msg) if msg == " connected" =>
204204 connectedPromise.success(msg)
205205 case cask.Ws .Text (msg) =>
@@ -228,7 +228,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
228228 url =>
229229 val wsMsgPromise = scala.concurrent.Promise [String ]()
230230 val connectedPromise = scala.concurrent.Promise [String ]()
231- cask.util.WsClient .connect(s " $url/connect " ) {
231+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) {
232232 case cask.Ws .Text (msg) if msg == " connected" =>
233233 connectedPromise.success(msg)
234234 case cask.Ws .Text (msg) =>
@@ -254,7 +254,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
254254
255255 " receive error when attempting to retrieve result with invalid uuid" in Fixture () { url =>
256256 val connectedPromise = scala.concurrent.Promise [String ]()
257- cask.util.WsClient .connect(s " $url/connect " ) { case cask.Ws .Text (msg) =>
257+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) { case cask.Ws .Text (msg) =>
258258 connectedPromise.success(msg)
259259 }
260260 Await .result(connectedPromise.future, Duration (1 , SECONDS ))
@@ -266,7 +266,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
266266
267267 " return a valid JSON response when calling /result with incorrectly-formatted UUID parameter" in Fixture () { url =>
268268 val connectedPromise = scala.concurrent.Promise [String ]()
269- cask.util.WsClient .connect(s " $url/connect " ) { case cask.Ws .Text (msg) =>
269+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) { case cask.Ws .Text (msg) =>
270270 connectedPromise.success(msg)
271271 }
272272 Await .result(connectedPromise.future, Duration (1 , SECONDS ))
@@ -284,7 +284,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
284284
285285 val rtl : Lock = new ReentrantLock ()
286286 val connectedPromise = scala.concurrent.Promise [String ]()
287- cask.util.WsClient .connect(s " $url/connect " ) { case cask.Ws .Text (msg) =>
287+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) { case cask.Ws .Text (msg) =>
288288 if (msg == " connected" ) {
289289 connectedPromise.success(msg)
290290 } else {
@@ -318,7 +318,7 @@ class ReplServerTests extends AnyWordSpec with Matchers {
318318 val connectedPromise = scala.concurrent.Promise [String ]()
319319
320320 val rtl : Lock = new ReentrantLock ()
321- cask.util.WsClient .connect(s " $url/connect " ) { case cask.Ws .Text (msg) =>
321+ cask.util.WsClient .connect(s " ${websocketUrl( url)} /connect " ) { case cask.Ws .Text (msg) =>
322322 if (msg == " connected" ) {
323323 connectedPromise.success(msg)
324324 } else {
@@ -392,6 +392,12 @@ class ReplServerTests extends AnyWordSpec with Matchers {
392392 ujson.read(getResponse.bytes)
393393 }
394394
395+ /**
396+ * org.java_websocket.client.WebSocketClient expects the url scheme to be either `ws` or `wss`,
397+ * and this tests mixes the two cases widely, so I found this to be the simplest way around it...
398+ */
399+ def websocketUrl (httpUrl : String ): String =
400+ httpUrl.replaceFirst(" ^http://" , " ws://" )
395401}
396402
397403object Fixture {
0 commit comments