@@ -5,6 +5,7 @@ import cats.effect.{IO, Resource}
55import cats .syntax .all ._
66import com .comcast .ip4s
77import org .http4s .ember .server .EmberServerBuilder
8+ import org .http4s .server .Server
89import org .http4s .server .websocket .WebSocketBuilder2
910import org .http4s .{HttpApp , HttpRoutes }
1011import sttp .capabilities .WebSockets
@@ -30,19 +31,21 @@ class Http4sTestServerInterpreter extends TestServerInterpreter[IO, Fs2Streams[I
3031 private val anyAvailablePort = ip4s.Port .fromInt(0 ).get
3132 private val serverBuilder = EmberServerBuilder .default[IO ].withPort(anyAvailablePort)
3233
33- override def server (
34- routes : NonEmptyList [Routes ],
35- gracefulShutdownTimeout : Option [FiniteDuration ]
36- ): Resource [IO , Port ] = {
37- val service : WebSocketBuilder2 [IO ] => HttpApp [IO ] =
38- wsb => routes.map(_.apply(wsb)).reduceK.orNotFound
39-
34+ def buildServer (
35+ makeService : WebSocketBuilder2 [IO ] => HttpApp [IO ],
36+ gracefulShutdownTimeout : Option [FiniteDuration ] = None
37+ ): Resource [IO , Server ] =
4038 serverBuilder
41- .withHttpWebSocketApp(service )
39+ .withHttpWebSocketApp(makeService )
4240 .withShutdownTimeout(
4341 gracefulShutdownTimeout.getOrElse(0 .seconds) // no need to wait unless it's explicitly required by test
4442 )
4543 .build
44+
45+ override def server (
46+ routes : NonEmptyList [Routes ],
47+ gracefulShutdownTimeout : Option [FiniteDuration ]
48+ ): Resource [IO , Port ] =
49+ buildServer(wsb => routes.map(_.apply(wsb)).reduceK.orNotFound, gracefulShutdownTimeout)
4650 .map(_.address.getPort)
47- }
4851}
0 commit comments