greskell-websocket-1.0.0.6: test/Network/Greskell/WebSocket/ResponseSpec.hs
module Network.Greskell.WebSocket.ResponseSpec
( main
, spec
) where
import Control.Monad (mapM_)
import Test.Hspec
import Network.Greskell.WebSocket.Response (ResponseCode (..), isClientSideError,
isServerSideError, isSuccess)
main :: IO ()
main = hspec spec
spec :: Spec
spec = do
describe "isSuccess" $ do
mapM_ (uncurry $ makeResponseCodeSpec isSuccess) $ [(Success, True), (Unauthorized, False), (ServerError, False)]
describe "isClientSideError" $ do
mapM_ (uncurry $ makeResponseCodeSpec isClientSideError) $ [(Success, False), (Unauthorized, True), (ServerError, False)]
describe "isServerSideError" $ do
mapM_ (uncurry $ makeResponseCodeSpec isServerSideError) $ [(Success, False), (Unauthorized, False), (ServerError, True)]
makeResponseCodeSpec :: (ResponseCode -> Bool) -> ResponseCode -> Bool -> Spec
makeResponseCodeSpec testee input want = specify (show input) $ testee input `shouldBe` want