Skip to content

Commit 0ca4a6c

Browse files
committed
Catch WS.ConnectionClosed
1 parent de68b30 commit 0ca4a6c

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

test/Servant/Client/JSaddleSpec.hs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ module Servant.Client.JSaddleSpec where
88

99
import Control.Concurrent
1010
(threadDelay)
11-
import Control.Concurrent.MVar (newEmptyMVar, putMVar, takeMVar)
11+
import Control.Concurrent.MVar
12+
(newEmptyMVar, putMVar, takeMVar)
13+
import Control.Exception
14+
(handle, throwIO)
1215
import Control.Monad.Trans
1316
import Data.Aeson
1417
import Data.ByteString
@@ -28,15 +31,16 @@ import qualified Language.Javascript.JSaddle.WebSockets as WS
2831
import qualified Network.HTTP.Types as Http
2932
import qualified Network.Wai as Wai
3033
import Network.Wai.Handler.Warp as Warp
31-
import qualified System.Process as P
3234
import Network.Wai.Middleware.AddHeaders
3335
import Network.Wai.Middleware.Cors
3436
(simpleCors)
3537
import Network.WebSockets
3638
(defaultConnectionOptions)
39+
import qualified Network.WebSockets as WS
3740
import Servant.API
3841
import Servant.Client.JSaddle
3942
import Servant.Server
43+
import qualified System.Process as P
4044
import Test.Hspec
4145

4246
type TestApi = ReqBody '[OctetStream] ByteString :> Post '[JSON] TestResponse
@@ -104,7 +108,11 @@ spec = do
104108
let serverApp :: IO Application
105109
serverApp = pure $ logRequest $ addCors $ serve testApi testServer
106110

107-
Warp.testWithApplication serverApp $ \serverPort -> do
111+
let handler :: WS.ConnectionException -> IO ()
112+
handler WS.ConnectionClosed = return ()
113+
handler e = throwIO e
114+
115+
handle handler $ Warp.testWithApplication serverApp $ \serverPort -> do
108116
threadDelay $ 500 * 1000
109117

110118
let clientApp :: IO Application

0 commit comments

Comments
 (0)